2
我從Objective-C的庫斯威夫特項目中的以下功能:如何投放詮釋爲無符號短斯威夫特
- (DDHotKey *)registerHotKeyWithKeyCode:(unsigned short)keyCode modifierFlags:(NSUInteger)flags task:(DDHotKeyTask)task {
// ...
}
我想通過下面的代碼來調用雨燕這個函數:
hotKeyCenter.registerHotKeyWithKeyCode(
kVK_ANSI_V,
modifierFlags: NSEventModifierFlags.ControlKeyMask.rawValue,
task: { _ in
// ...
}
)
不幸的是,它給了我下面的錯誤:
Missing argument for parameter 'action' in call
但是,如果我改變kVK_ANSI_V
到任何這樣的數字
hotKeyCenter.registerHotKeyWithKeyCode(
34,
modifierFlags: NSEventModifierFlags.ControlKeyMask.rawValue,
task: { _ in
// ...
}
)
代碼編譯沒有任何錯誤。
如你所知,在kVK_ANSI_V
碳框架中定義:
var kVK_ANSI_V: Int { get }
正如你看到的,它有一個Int
類型,而該方法的keyCode
參數有unsigned short
類型。
我該如何投Int
到unsigned short
?有沒有辦法解決這個錯誤?
在此先感謝。
你有沒有嘗試鑄造到UInt?即UInt(kVK_ANSI_V)? – giorashc 2015-04-02 08:27:52
@giorashc不幸的是,它不起作用 - 同樣的錯誤 – FrozenHeart 2015-04-02 08:31:39
objc中的無符號短short是2字節,所以也許UInt16會工作? – giorashc 2015-04-02 08:38:32