主要实现的功能是,当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];
}
}];
}
转载请注明原文地址: https://ju.6miu.com/read-3905.html