即使主窗口未激活,NSPopover也会显示

时间:2012-09-23 08:28:24

标签: objective-c cocoa nspopover

我正在以编程方式显示一个popover,如下所示:

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,弹出窗口将在该NSTextfield下显示。 这一切都有效,但问题是,即使窗口被隐藏而且不活动,弹出窗口也会出现,就好像它来自哪里(主窗口在弹出窗口出现时仍然隐藏)。 任何帮助如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您需要检查您的窗口是主窗口还是关键窗口,然后显示弹出框。就像这样:

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

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