Xcode 显示NSPopover后调整其大小

Xcode 显示NSPopover后调整其大小,xcode,cocoa,nspopover,Xcode,Cocoa,Nspopover,我有一个NSpover,他在NSView中显示内容。我创建popover并添加如下视图: NSPopover *thePopover = [[NSPopover alloc] init]; [thePopover setContentViewController:myViewController]; 然后显示popover并设置大小: [thePopover setContentSize:NSMakeSize(300.0f, 160.0f)]; 此时,popover是可见的,其内容视图是正确

我有一个NSpover,他在NSView中显示内容。我创建popover并添加如下视图:

NSPopover *thePopover = [[NSPopover alloc] init];
[thePopover setContentViewController:myViewController];
然后显示popover并设置大小:

[thePopover setContentSize:NSMakeSize(300.0f, 160.0f)];
此时,popover是可见的,其内容视图是正确的。是否有一种方法可以在此时调整popover的大小而不关闭并重新显示它?

来自:

设置内容视图控制器时,popover的内容大小设置为与内容视图的大小匹配


因此,popover的内容视图。

我能够通过调用通过代理协议启动popover的控制器并使用
设置内容大小重置大小来实现这一点:
NSWindow
具有私有属性
\u popover
,该属性存储对
NSpover
的引用。 您可以使用它从任何
NSViewController
访问
nspover
实例(然后在其上调用
setContentSize:
),如下所示:

- (NSPopover *)popover
{
    NSWindow *window = self.view.window;
    NSPopover *popover = [window valueForKey:@"_popover"];
    return popover;
}

这似乎是最简单的答案。