我的代码中有一些功能可以在事件发生时随时打开一个popover。问题是如果这些事件一个接一个地发生,那么打开的弹出窗口是重叠的。
我想打开一个弹出窗口时关闭一个弹出窗口。
如果有活跃的弹出窗口,有没有办法从nswindow获取?
提前致谢并问候
答案 0 :(得分:1)
我认为您需要使用NSPopover的通知方法,例如:
- (void)popoverDidShow:(NSNotification *)notification;
- (void)popoverWillClose:(NSNotification *)notification;
并添加一些隐藏未关闭的弹出窗口的逻辑......
答案 1 :(得分:1)
最后,我能够通过发布通知来解决这个问题:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(popoverWillShow:)
name:NSPopoverWillShowNotification
object:nil];
然后在选择器中我比较对象:( popover是一个NSPopover)
- (void)popoverWillShow:(NSNotification *)notification {
if (![popover isEqual:[notification object]])
[self close];
}