7

我有一个 NSPopover,他的内容是 NSView。我创建弹出窗口并添加如下视图:

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具有存储对 . 的引用的私有属性NSPopover。您可以使用它从任何(然后调用它)访问NSPopover实例,如下所示:NSViewControllersetContentSize:

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