Swift 3では、ユーザが矢印キーを押すたびにアクションを実行する必要がある簡単なプログラムを作成しようとしています。少しの研究の後で、私は使用する必要がある方法がkeyDown(with event: NSEvent)
であることを発見しました。私がキーを押すたびに呼び出されるのではないという問題があります。Swift 3(macOS):keyDown(イベント:NSEvent)は呼び出されません
は、ここに私のコード
import Cocoa
let LEFT: UInt16 = 123
let RIGHT: UInt16 = 124
let DOWN: UInt16 = 125
let UP: UInt16 = 126
class GameViewController: NSViewController {
...
override func keyDown(with event: NSEvent) {
print("abc")
switch event.keyCode {
case LEFT:
print("left")
break
case RIGHT:
print("right")
break
case DOWN:
print("down")
break
case UP:
print("up")
break
default:
print("other")
super.keyDown(with: event)
break
}
print("Key with number: \(event.keyCode) was pressed")
}
}
私は矢印キーに問題があったかどうかをテストするために、すべての矢印キー、および他のキーを押すと試みたが、何も起こらなかったのです - 私はMacOSからのエラー音を得ることを除いて。
私は問題がどこから来るのか分かりません。私はSwiftの方が新しいので、私が見ていないことはかなり明白かもしれません。あなたは私が間違っていることを知っていますか?事前
あなたのクラスはレスポンダチェーンの一部でなければなりません。おそらく、[Cocoa Event Handling Guide](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/EventOverview/Introduction/Introduction.html)で必要なものを見つけることができます。 – Jerry