Swift OSX关键事件

时间:2015-01-18 17:20:34

标签: macos cocoa swift keydown

我一直在使用swift中的Cocoa OSX项目,需要使用键盘输入来执行操作。在keydown上我想在窗口上移动一个对象,但是一旦关键松开就停止对象。我查看了AppKit的文档并找到了KeyDown函数,但我似乎无法弄清楚如何使用它。我想在我的游戏更新计时器中创建一个函数来调用它。谢谢

import Cocoa
import Appkit

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

@IBOutlet weak var window: NSWindow!

func applicationDidFinishLaunching(aNotification: NSNotification) {
    // Insert code here to initialize your application

     func keyDown(theEvent: NSEvent) {
        if (theEvent.keyCode == 1){
            println("test")
        }

    }

}

func applicationWillTerminate(aNotification: NSNotification) {
    // Insert code here to tear down your application



}

}

3 个答案:

答案 0 :(得分:17)

以下是一些示例代码:

  override func keyDown(theEvent: NSEvent) {
            if (theEvent.keyCode == 1){
           //do whatever when the s key is pressed
        } 

    }

关键代码:  enter image description here

答案 1 :(得分:4)

 override func keyDown(with event: NSEvent) {
    if (event.keyCode == 1){
        //do whatever when the s key is pressed
        print("S key pressed")
    }
}

更新了SWIFT 3

答案 2 :(得分:0)

SWIFT 4:我创建了一个仓库来解决我的游戏中的这个问题。我主要将其与MTKView一起使用,但也应与NSViews一起使用。

https://github.com/twohyjr/NSView-Keyboard-and-Mouse-Input