objective-c - 使用快捷方式记录器保存/加载键盘快捷键?

标签 objective-c cocoa xcode4 keyboard-shortcuts nsuserdefaults

我正在 XCode4 中开发一个 Cocoa/Objective-C 应用程序,它使用 shortcutrecorder记录键盘快捷键并将其保存为默认值。

我正在从记录器保存 KeyCombo.codeKeyCombo.flags 属性,即:

[shortcutRecorder KeyCombo].code
[shortcutRecorder KeyCombo].flags

其中 shortcutRecorderSRRecorderControlIBOutlet

为了在用户再次打开首选项窗口时恢复保存的键盘快捷键,我从默认值加载 KeyCombo.codeKeyCombo.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/

相关文章:

objective-c - 在哪里可以找到 kCG KeyboardEvent Keycode 西里尔语言键码列表

cocoa - 使用 NSMutableDictionary 与 NSMutableArray 造成的性能损失>

macos - 如何禁用单击父菜单项而不禁用它?

objective-c - 苹果电脑 : Check for keyboard events

objective-c - 无法在 Xcode 4 上编译 Objective-C

objective-c - 在 Objective-C 中处理大量音频样本

iphone - NavigationBar如何Title Font颜色字体样式

objective-c - 如何在 UIView 中放置小图像

macos - 如何使用xcodebuild构建特定的体系结构?

objective-c - 复制NSMutableArray线程安全吗?