2

ポップオーバーが表示されているときに、条件チェックに応じてサイズを可変にするにはどうすればよいですか?ポップオーバーを使用する場合、この機能はサポートされていますか?

フレームサイズを変更するためのサンプルは次のとおりです。

CGFloat newHeight = 200;
NSRect newFrame  = [parentView frame];
newFrame.size.height = newHeight;

NSView* childView = someView;

[parentView setFrame:newFrame];
[self.view addSubview:childView];
4

2 に答える 2

3

何かが変更されたかどうかはわかりませんが、10.9 ではポップオーバーで setContentSize を設定するだけです。

[popoverView setFrame:NSMakeRect(0, 0, 581, 581)];
[thePopover setContentSize:popoverView.frame.size];
于 2013-12-14T20:38:38.960 に答える
2

popupwindow.contentViewControllerのプロパティを、異なるサイズのビューをNSPopover持つ新しいものに変更する必要があります。NSViewControllerつまり、ビューのフレームのサイズを変更すると、奇妙な描画の問題が発生するだけです。ポップオーバーウィンドウのサイズを変更するには、を変更するcontentViewController必要があります。

NSViewController理想的には、基本的に既存ののコピーであるが、より高い/より短いビューを含む新しいビューコントローラを設定します。しかし、最悪のシナリオでは、次のようなことができます。

gPopoverWindow.contentViewController = [[[NSViewController alloc] initWithNibName: @"tempNibName" bundle: nil] autorelease];
NSView *v = self.view;
NSRect b = [v frame];
b.size.height += 25;
[v setFrame: b];
gPopoverWindow.contentViewController = self;

私のテストでは、これにより、ポップオーバーが縮小アニメーションを開始し(一時ビューコントローラーに設定されているため)、その後、新しいサイズに成長しました。

于 2012-05-08T21:25:15.893 に答える