2

私は次のようにプログラムでポップオーバーを表示しています:

popover = [NSPopover new];    
popover.contentViewController = popoverController;
popover.animates = YES;
popover.delegate = popoverController;
popover.behavior = NSPopoverBehaviorSemitransient;

[popover showRelativeToRect:[textfield bounds] 
                     ofView:textfield 
              preferredEdge:NSMaxYEdge];

ここで、textfieldは、ポップオーバーが表示されるNSTextfieldです。それはすべて機能しますが、問題は、ウィンドウが非表示でアクティブでない場合でも、どこからともなく表示されている場合のように、ポップオーバーが表示されることです(ポップオーバーが表示されている間、メインウィンドウは非表示のままです)。これを解決する方法はありますか?

4

1 に答える 1

1

ウィンドウがメインウィンドウかキーウィンドウかを確認してから、ポップオーバーを表示する必要があります。ちょうどこのような:

if ([yourWindowOutlet isMainWindow]) {
    // show popover
}

また

if ([yourWindowOutlet isKeyWindow]) {
    // show popover
}
于 2012-09-23T11:37:40.587 に答える