swift - KeyDown 不起作用,Swift

标签 swift nsview keydown

我在 NSView 类中重写 keyDown 方法,但是我没有得到任何操作

我的代码是这样的:

class Rotund: NSView {

var numar: Int = 0 {
    didSet {
        self.needsDisplay = true
    }
}

override func drawRect(dirtyRect: NSRect) {
    super.drawRect(dirtyRect)
        drawCanvas1(number: CGFloat(numar), x: 0)
}
func drawCanvas1(#number: CGFloat, x: CGFloat) {
    //// Color Declarations
    let color = NSColor(calibratedRed: 0.98, green: 0.008, blue: 0.008, alpha: 1)

    //// Oval Drawing
    let ovalPath = NSBezierPath(ovalInRect: NSMakeRect(x, 34, number, number))
    color.setFill()
    ovalPath.fill()
}    
override func keyDown(theEvent: NSEvent) {
    if theEvent.keyCode == 124 {
        println("abc")
        } else {
            println("abcd")
    }
}

有人能帮我弄清楚我该怎么做吗?

最佳答案

只是确认...在您的代码中,您似乎已经覆盖了 KeyUp。所以也许,您应该尝试将其更改为:

override func keyDown(theEvent: NSEvent) {
if theEvent.keyCode == 124 {
    println("abc")
} else {
    println("abcd")

关于swift - KeyDown 不起作用,Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27578680/

相关文章:

ios - 在View的边框上添加渐变色

objective-c - 使 NSWindow 的内容变灰

objective-c - NSTableView 问题 - 使用 SplitView 面板显示自定义 TableView

macos - Swift OSX 按键事件

javascript - Keydown 效果,如果 keyup 在效果完成之前发出警报

image - 更改 skspritenode() 的图像

ios - 使用未声明的类型 'FIRMessagingDelegate'

swift - Swift 弃用 C 风格的 for 语句有哪些优点?

objective-c - NSProgressIndicator 问题 - 也许是我的 NSView 子类?