我无法在swift中检测用户的双击,我想在用户双击nstextfield时检测。

func someFunc() {
    y.target = self
    y.action = "editLabel:"
}

@IBAction func editLabel(obj:AnyObject?) {
    NSLog("here");
}

上面的代码不起作用,我似乎找不到显示如何添加事件处理程序的基本文档。有更简单的方法吗?

最佳答案

我想您的文本字段是一个标签,而不是处于正常状态的可编辑文本字段。从OS X 10.10(约塞米蒂)开始,您可以使用NSClickGestureRecognizer

func applicationDidFinishLaunching(aNotification: NSNotification) {
    let gesture = NSClickGestureRecognizer()
    gesture.buttonMask = 0x1 // left mouse
    gesture.numberOfClicksRequired = 2
    gesture.target = self
    gesture.action = "editLabel:"

    myLabel.addGestureRecognizer(gesture)
}

func editLabel(sender: NSGestureRecognizer) {
    if let label = sender.view as? NSTextField {
        print("Hello world")
    }
}

09-15 13:23