即使主窗口未处于活动状态,NSPopover也会显示



>我以编程方式显示一个弹出框,如下所示:

popover = [NSPopover new];    
popover.contentViewController = popoverController;
popover.animates = YES;
popover.delegate = popoverController;
popover.behavior = NSPopoverBehaviorSemitransient;
[popover showRelativeToRect:[textfield bounds] 
                     ofView:textfield 
              preferredEdge:NSMaxYEdge];

其中文本字段是一个 NSText 字段,弹出框将显示在该字段下。这一切都有效,但问题是即使窗口处于隐藏状态且未处于活动状态,弹出窗口也会显示出来,就像它不知从何而来一样(当弹出框显示时,主窗口保持隐藏状态)。有什么帮助如何解决这个问题吗?

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

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

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

最新更新