我正在以编程方式创建NSMenu
带有的NSMenuItem
。当应用程序窗口处于活动状态时,将NSMenuItem
启用:
但是,一旦窗口失去焦点,菜单项就会被禁用:
这是我创建方法NSMenu
:
- (void)_quit
{
[[NSApplication sharedApplication] terminate:nil];
}
- (NSMenu *)_setupMenu
{
NSMenu *statusMenu = [[NSMenu alloc] initWithTitle:@"Demo"];
NSMenuItem *quit = [[NSMenuItem alloc] initWithTitle:@"Quit" action:@selector(_quit) keyEquivalent:@""];
[statusMenu addItem:quit];
return statusMenu;
}
是什么导致此问题?不管应用程序是否处于关注状态,我如何才能使其启用?
因为菜单项是基于响应者链启用的。
在您的情况下,可以使用terminate:
选择器代替自己的选择器。
正如在NSApplication
类(也是响应者链的一部分)中声明的那样,该项目将始终处于活动状态。
NSMenuItem *quit = [[NSMenuItem alloc] initWithTitle:@"Quit" action:@selector(terminate:) keyEquivalent:@""];
有关更多信息,请参见:可可事件处理指南
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句