当弹出窗口显示时,如何根据条件检查使其大小变量?使用popover时是否支持此功能?
以下是我更改框架尺寸的示例:
CGFloat newHeight = 200;
NSRect newFrame = [parentView frame];
newFrame.size.height = newHeight;
NSView* childView = someView;
[parentView setFrame:newFrame];
[self.view addSubview:childView];
答案 0 :(得分:3)
不知道是否有任何改变,但在10.9中,您只需要在弹出窗口上设置setContentSize,例如:
[popoverView setFrame:NSMakeRect(0, 0, 581, 581)];
[thePopover setContentSize:popoverView.frame.size];
答案 1 :(得分:2)
您需要将popupwindow.contentViewController
的{{1}}属性更改为具有不同大小视图的新NSPopover
。
也就是说,调整视图框架的大小只会导致奇怪的绘图问题。要使弹出窗口更改大小,必须更改NSViewController
。
理想情况下,您需要设置一个新的视图控制器,它实际上是现有contentViewController
的副本,但包含的视图更高/更短。但在最坏的情况下,你可以这样做:
NSViewController
在我的测试中,这导致popover开始收缩动画(因为被设置为临时视图控制器),然后增长到新的大小。