2013-01-22 25 views
6

NSViewにコンテンツを持つNSPopoverがあります。私はポップオーバーを作成し、このようにビューを追加:NSPopoverが表示された後でサイズを変更します。

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

私は、ポップオーバーを表示し、サイズ設定:この時点で

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

をポップオーバーが表示され、その内容のビューが正しいです。それを閉じて再表示せずに、この時点でポップオーバーのサイズを変更できる方法はありますか? the documentationから

答えて

9

私はバックデリゲートプロトコルを介してポップオーバーを開始し、setContentSize:

1

ポップオーバーのコンテンツのサイズをコンテンツビューコントローラが設定されている場合、コンテンツビューのサイズに一致するように設定されています。

したがって、popoverのコンテンツビューのset the frameです。

0

NSWindowを使用してサイズをリセットすると私有財産NSPopoverへの参照を格納_popoverを持っているコントローラに呼び出すことによって、これを達成することができました。 あなたは、このように任意のNSViewControllerからNSPopoverインスタンスにアクセスするためにそれを使用する(およびそれにsetContentSize:を呼び出す)ことができます。

- (NSPopover *)popover 
{ 
    NSWindow *window = self.view.window; 
    NSPopover *popover = [window valueForKey:@"_popover"]; 
    return popover; 
} 
関連する問題