ハードウェア キーボードのサポートをアプリに追加して、ユーザーがいつでもキーボードの特定のキーを押すことで呼び出される関数をトリガーできるようにしたいと考えています。この記事を見つけて、Objective-C でうまく機能させることができました。Swift に変換したのですが、keyPressed
「c」を押した後、何らかの理由でメソッドが呼び出されません。keyCommands
ユーザーがキーボードのキーを押すとすぐに呼び出されることを確認しました。iOS シミュレーターと Mac のキーボードでテストしています。
私のSwiftコードの問題は何ですか?
override func canBecomeFirstResponder() -> Bool {
return true
}
func keyCommands() -> [AnyObject]? {
var keyCommands = []
struct Static {
static var onceToken : dispatch_once_t = 0
}
dispatch_once(&Static.onceToken) {
let command = UIKeyCommand(input: "c", modifierFlags: nil, action: "keyPressed:")
keyCommands = [command]
}
return keyCommands
}
func keyPressed(command: UIKeyCommand) {
println("user pressed c") //never gets called
}