3

ハードウェア キーボードのサポートをアプリに追加して、ユーザーがいつでもキーボードの特定のキーを押すことで呼び出される関数をトリガーできるようにしたいと考えています。この記事を見つけて、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
}
4

1 に答える 1