7

NSViewのコンテンツであるNSPopoverがあります。ポップオーバーを作成し、次のようなビューを追加します。

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

次に、ポップオーバーを表示してサイズを設定します。

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

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

4

3 に答える 3

10

デリゲートプロトコルを介してポップオーバーを起動したコントローラーにコールバックし、を使用してサイズをリセットすることで、これを実現できました。setContentSize:

于 2013-01-22T23:53:40.230 に答える
2

ドキュメントから:

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

したがって、ポップオーバーのコンテンツビューのフレームを設定します。

于 2013-01-22T08:02:47.317 に答える
1

NSWindow_popoverへの参照を格納するプライベートプロパティがありますNSPopoverNSPopoverこれを使用して、次のように任意のインスタンスからインスタンスにアクセスできますNSViewController(そしてそれを呼び出しますsetContentSize:)。

- (NSPopover *)popover
{
    NSWindow *window = self.view.window;
    NSPopover *popover = [window valueForKey:@"_popover"];
    return popover;
}
于 2015-04-29T14:40:37.233 に答える