主要实现的功能是,当NSApp非active状态时候,右键app,会弹出上下文菜单(open contextual menus), 但是此时App不是活跃状态,所以在applicationDidFinishLaunching 定义全局的monitor,可以监控到app外边的键盘或者其他事件的点击,然后我们就可以关闭当前的上下文菜单
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSKeyDownMask | NSLeftMouseDownMask | NSRightMouseDownMask | NSOtherMouseDownMask) handler:^(NSEvent * event) {
if (event.type == NSKeyDown) {
if ([event keyCode] == kVK_Escape) {
[[NSNotificationCenter defaultCenter] postNotificationName:TO_CLOS_CONTEXT_MENU_WINDOW_NOTIFICATION object:nil];
}
} else {
[[NSNotificationCenter defaultCenter] postNotificationName:TO_CLOS_CONTEXT_MENU_WINDOW_NOTIFICATION object:nil];
}
}];
}
本文介绍了一种在Mac应用中实现非活跃状态下上下文菜单的管理方法。通过监听全局键盘和其他事件,当用户尝试关闭菜单时,可以及时响应并执行相应的操作。
974

被折叠的 条评论
为什么被折叠?



