我用这段代码生成了多个 NSButtons:
var height = 0
var width = 0
var ar : Array<NSButton> = []
var storage = NSUserDefaults.standardUserDefaults()
height = storage.integerForKey("mwHeight")
width = storage.integerForKey("mwWidth")
var x = 0
var y = 0
var k = 1
for i in 1...height {
for j in 1...width {
var but = NSButton(frame: NSRect(x: x, y: y + 78, width: 30, height: 30))
but.tag = k
but.title = ""
but.action = Selector("buttonPressed:")
but.target = self
but.bezelStyle = NSBezelStyle(rawValue: 6)!
ar.append(but)
self.view.addSubview(but)
x += 30
k++
}
y += 30
x = 0
}
而且我需要将 NSClickGestureRecognizer
添加到它们中的每一个以识别二次鼠标按钮点击。有没有办法以编程方式做到这一点?
最佳答案
这应该有效:
let g = NSClickGestureRecognizer()
g.target = self
g.buttonMask = 0x2 // right button
g.numberOfClicksRequired = 1
g.action = Selector("buttonGestured:")
but.addGestureRecognizer(g)
以后
func buttonGestured(g:NSGestureRecognizer) {
debugPrintln(g)
debugPrintln(g.view)
if let v = g.view as? NSButton {
debugPrintln("tag: \(v.tag)")
}
}
关于xcode - 以编程方式快速将 NSClickGestureRecognizer 添加到 NSButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29349062/