我正在 XCode4 中开发一个 Cocoa/Objective-C 应用程序,它使用 shortcutrecorder记录键盘快捷键并将其保存为默认值。
我正在从记录器保存 KeyCombo.code
和 KeyCombo.flags
属性,即:
[shortcutRecorder KeyCombo].code
[shortcutRecorder KeyCombo].flags
其中 shortcutRecorder
是 SRRecorderControl
的 IBOutlet
。
为了在用户再次打开首选项窗口时恢复保存的键盘快捷键,我从默认值加载 KeyCombo.code
和 KeyCombo.flags
属性,并且需要将它们恢复到`SRRecorderControl。
我正在尝试做:
[shortcutRecorder setKeyCombo:[
PTKeyCombo keyComboWithKeyCode:
[shortcutRecorder keyCombo].code
modifiers:[shortcutRecorder cocoaToCarbonFlags:[shortcutRecorder
keyCombo].flags]]];
但这会导致错误:将“id”发送到不兼容类型“KeyCombo”(又名“struct_KeyCombo”)的参数
我认为这可能是因为 setKeyCombo
采用 KeyCombo
对象而不是 PTKeyCombo
对象,所以我更改了它:
[shortcutRecorder setKeyCombo:[
KeyCombo keyComboWithKeyCode:
[shortcutRecorder keyCombo].code
modifiers:[shortcutRecorder cocoaToCarbonFlags:[shortcutRecorder
keyCombo].flags]]];
但现在我收到错误:接收器类型“KeyCombo”(又名“struct_KeyCombo”)不是 Objective-C 类
我不知道如何创建一个有效的对象来传递给setKeyCombo
。关于处理此问题的最佳方法有什么建议吗?
最佳答案
尝试 SRMakeKeyCombo(code, flags)
关于objective-c - 使用快捷方式记录器保存/加载键盘快捷键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8361136/