2013-01-22 10 views
6

मेरे पास एक एनएसपीओवर है जो एनएसवी व्यू में सामग्री है। मैं पॉपओवर बना सकते हैं और इस तरह से दृश्य जोड़ने:दिखाए जाने के बाद एनएसपीओपॉवर का आकार बदलें

NSPopover *thePopover = [[NSPopover alloc] init]; 
[thePopover setContentViewController:myViewController]; 

मैं तो पॉपओवर दिखाने के लिए और आकार सेट:

[thePopover setContentSize:NSMakeSize(300.0f, 160.0f)]; 

इस बिंदु पर पॉपओवर दिखाई दे रहा है और उसकी सामग्री को देखने सही है। क्या कोई तरीका है कि मैं इस बिंदु पर पॉपओवर को बंद किए बिना इसे फिर से दिखा सकता हूं?

उत्तर

9

मैं वापस नियंत्रक कि एक प्रतिनिधि प्रोटोकॉल के माध्यम से पॉपओवर का शुभारंभ करने के लिए बुला और setContentSize:

1
the documentation से

:

पॉपओवर की सामग्री आकार सामग्री को देखने के आकार के हिसाब से जब सामग्री दृश्य नियंत्रक सेट किया गया है निर्धारित है।

तो, पॉपओवर के सामग्री दृश्य के set the frame

0

NSWindow का उपयोग कर आकार रीसेट करके इस लक्ष्य को हासिल करने में सक्षम था निजी संपत्ति _popover कि NSPopover के लिए एक संदर्भ की दुकान है। आप इसे इस तरह किसी भी NSViewController से NSPopover उदाहरण के लिए उपयोग करने के लिए उपयोग कर सकते हैं (और फिर उस पर setContentSize: कहते हैं):

- (NSPopover *)popover 
{ 
    NSWindow *window = self.view.window; 
    NSPopover *popover = [window valueForKey:@"_popover"]; 
    return popover; 
} 
संबंधित मुद्दे