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 回答