Xcode 显示NSPopover后调整其大小
我有一个NSpover,他在NSView中显示内容。我创建popover并添加如下视图: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是可见的,其内容视图是正确
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;
}
这似乎是最简单的答案。