我在课程NSView
中覆盖了keyDown方法,但I don't get any action
。
这就是我的代码的样子:
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")
}
}
有人可以帮我弄清楚我该怎么做?
答案 0 :(得分:0)
只需确认...在您的代码中,您似乎已经覆盖了KeyUp。也许,您应该尝试将其更改为:
override func keyDown(theEvent: NSEvent) {
if theEvent.keyCode == 124 {
println("abc")
} else {
println("abcd")
}
答案 1 :(得分:0)
您已覆盖keyUp方法而非keyDown
请从
更改您的代码override func keyUp(theEvent: NSEvent) {
if theEvent.keyCode == 124 {
println("abc")
} else {
println("abcd")
}
覆盖
override func keyDown(theEvent: NSEvent) {
if theEvent.keyCode == 124 {
println("abc")
} else {
println("abcd")
}
希望有所帮助。 如果没有,请在下面评论,谢谢。