我正在研究一个NSMenuBar应用程序,另一个NSMenuBar应用程序似乎影响我的应用程序的显示行为!?更确切地说:Adobe的创意云应用程序。当我点击那个(创意云)图标时,弹出视图出现。之后,当我点击我的StatusBar图标时,出现我的菜单,但是,应该启用的所有NSMenuItem都会突然禁用,并且不再交互。NSMenuBar影响(禁用)其他视图(NSMenuItem)的应用程序? BUG
一些观察:
当我登录了NSMenuItem的启用状态,它正确地记录为被启用,但它显然不是显示为已启用(见截图),并点击它只是关闭菜单而不执行相关的操作。我使用以下代码进行日志记录:
-(void)menuWillOpen:(NSMenu *)menu
{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC),
dispatch_get_main_queue(),
^{
NSLog(@"preferences menu-item is enabled: %hhd",[self.preferenceMenuItem isEnabled]);
});
}
我使用的NSMenu设置为setAutoenablesItems:NO。
此外,Adobe的Creative Cloud使用弹出式视图。当它被打开时,它显然悬停在我的NSMenu正在使用的屏幕上。
当我试图用其他NSMenuBar应用程序(例如Apple的Wifi或蓝牙)重现这一切时,它都可以正常工作。没问题。然后再次,这些应用程序不使用Popover视图,并且它们不会完全重叠我的应用程序的空间。
请看看这些截图为例证:
之前
恶意创意云
后
我在这里错过了什么?应用程序不应该像这样影响对方?我很慢,但肯定会对此失去理智。任何帮助表示赞赏!日Thnx!