在Swift中将Click Handler添加到NSTextField

Fad*_*orm 2 macos onclick event-handling nstextfield swift

我在检测用户在swift中的双击时遇到问题,我想检测他们何时双击NSTextField.

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

@IBAction func editLabel(obj:AnyObject?) {
    NSLog("here");
}
Run Code Online (Sandbox Code Playgroud)

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

Cod*_*ent 11

我猜您的文本字段是标签,而不是正常状态下的可编辑文本字段.从OS X 10.10(Yosemite)开始,您可以使用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")
    }
}
Run Code Online (Sandbox Code Playgroud)