原文地址 http://zhangzhaopds.github.io
方法一:在IB中快速设置
如果将快捷键设置为MacAPP默认的,用户不可以更改的快捷键,推荐使用这种方法,十分便捷。具体就是在StoryBoard中为NSMenuItem设置KeyEquivalent属性,简单直接。如下图:
方法二:代码实现快捷键设置
允许用户设置快捷键的话,推荐使用这种方法。首先引入Carbon.framework, 具体方法如下: // 注册快捷键 `
-
(void)costomHotKey {
// 1、声明相关参数 EventHotKeyRef myHotKeyRef; EventHotKeyID myHotKeyID; EventTypeSpec myEvenType; myEvenType.eventClass = kEventClassKeyboard; // 键盘类型 myEvenType.eventKind = kEventHotKeyPressed; // 按压事件
// 2、定义快捷键 myHotKeyID.signature = 'yuus'; // 自定义签名 myHotKeyID.id = 4; // 快捷键ID
// 3、注册快捷键 // 参数一:keyCode; 如18代表1,19代表2,21代表4,49代表空格键,36代表回车键 // 快捷键:command+4 RegisterEventHotKey(21, cmdKey, myHotKeyID, GetApplicationEventTarget(), 0, &myHotKeyRef);
// 快捷键:command+option+4 // RegisterEventHotKey(21, cmdKey + optionKey, myHotKeyID, GetApplicationEventTarget(), 0, &myHotKeyRef);
// 5、注册回调函数,响应快捷键 InstallApplicationEventHandler(&hotKeyHandler, 1, &myEvenType, NULL, NULL); }
EventHotKeyID hotKeyRef;
GetEventParameter(anEvent, kEventParamDirectObject, typeEventHotKeyID, NULL, sizeof(hotKeyRef), NULL, &hotKeyRef);
unsigned int hotKeyId = hotKeyRef.id;
switch (hotKeyId) { case 4: // do something NSLog(@"%d", hotKeyId); break; default: break; } return noErr; } `