2012-05-08 6 views
1

ポップオーバーが表示されているときに、どのようにサイズチェックを行うかによってサイズを変えることができます。 この機能は、ポップオーバーを操作するときにサポートされているかどうかです。飛行中にポップオーバービューフレームを変更する

フレームサイズを変更するサンプルです。

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

    NSView* childView = someView; 

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

よろしく、

答えて

2

あなたは、異なるサイズのビューで新しいNSViewControllerNSPopoverpopupwindow.contentViewControllerプロパティを変更する必要があります。 つまり、ビューのフレームのサイズを変更すると、奇妙な描画の問題が発生します。ポップオーバーウィンドウのサイズを変更するには、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; 

を、これはその後に成長している、(なぜなら一時ビューコントローラに設定されるので)シュリンクアニメーションを開始するポップオーバーの結果新しいサイズ。

3

何が変更された場合には分からないのですが、10.9にあなたがしなければならないすべては、setContentSizeはポップオーバーの上にある、例えば:

[popoverView setFrame:NSMakeRect(0, 0, 581, 581)]; 
[thePopover setContentSize:popoverView.frame.size]; 
関連する問題