2011-12-02 50 views
1

我正在使用shortcutrecorder來記錄鍵盤快捷鍵並將它們保存爲默認值的XCode4中的Cocoa/Objective-C應用程序。使用shortcutrecorder保存/加載鍵盤快捷鍵?

我從記錄保存KeyCombo.codeKeyCombo.flags屬性,即:

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

shortcutRecorderIBOutletSRRecorderControl

爲了在用戶再次打開首選項窗口時恢復已保存的鍵盤快捷鍵,我加載了KeyCombo.codeKeyCombo.flags屬性的默認值,並且需要將它們恢復到`SRRecorderControl。

我試圖做的事:

[shortcutRecorder setKeyCombo:[ 
     PTKeyCombo keyComboWithKeyCode: 
     [shortcutRecorder keyCombo].code 
     modifiers:[shortcutRecorder cocoaToCarbonFlags:[shortcutRecorder 
     keyCombo].flags]]]; 

但是,這將導致錯誤:Sending 'id' to parameter of incompatible type 'KeyCombo' (aka 'struct_KeyCombo')

我想這可能是因爲setKeyCombo需要KeyCombo對象,而不是一個PTKeyCombo對象,所以我改變了它:

[shortcutRecorder setKeyCombo:[ 
     KeyCombo keyComboWithKeyCode: 
     [shortcutRecorder keyCombo].code 
     modifiers:[shortcutRecorder cocoaToCarbonFlags:[shortcutRecorder 
       keyCombo].flags]]]; 

但現在我收到的錯誤:Receiver type 'KeyCombo' (aka 'struct_KeyCombo') is not an Objective-C class

我不知道如何去創建一個有效的對象傳遞給setKeyCombo。任何提示處理這個最好的方法?

回答

1

嘗試SRMakeKeyCombo(code, flags)