我在这个网站上看过如何在用户点击MAAttachedWindow时隐藏MAAttachedWindow的帖子。在这篇文章中,我将MAAttachedWindow与statusItem一起使用。 Hide MAAttachedWindow when clicking outside。 它说我应该在它关闭状态时隐藏窗口。
但我想知道是否有其他方法而不是窗口的键状态。使用密钥状态会增加另一个问题: 为了在窗口重新启动键状态时收到通知,之前必须忽略所有其他应用程序(这意味着当statusMenu出现时,所有其他应用程序的窗口将变为非活动状态并失去颜色。由[NSApp]完成activateIgnoringOtherApps:YES])。 当您使用Spotlight-或Airport-statusItem时,通常不会发生这种情况。用户不会期望这样。
有没有人让MAAttachedWindow表现得像真正的NSMenu?是否有办法在没有这个问题的情况下使用密钥状态?谢谢你的任何提示。
答案 0 :(得分:0)
您可以在不使用[NSApp activateIgnoringOtherApps:YES]的情况下激活NSPanel。只需像这样使用NSNonactivatingPanelMask:
NSPanel *panel = [super initWithContentRect:NSZeroRect
styleMask: NSNonactivatingPanelMask
backing:NSBackingStoreBuffered
defer:NO];