macos - 在 Swift 中将点击处理程序添加到 NSTextField

标签 macos swift onclick event-handling nstextfield

我无法快速检测用户的双击,我想检测他们何时双击 NSTextField。

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

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

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

最佳答案

我猜你的文本字段是一个标签,而不是正常状态下的可编辑文本字段。从 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")
    }
}

关于macos - 在 Swift 中将点击处理程序添加到 NSTextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33225520/

相关文章:

python - virtualenv macosX --no-site-package 忽略

macos - 将功能注入(inject)二进制文件的最佳方法

ios - 更改现有 Parse 数据的问题

php - PHP 中的重复函数

php - 在 PHP 中向按钮添加 Javascript 事件

javascript - onclick(将调用一个函数)之后,它会继续加载并且无法检测到按键

objective-c - 使用自定义 NSView 更改悬停在 NSMenuItem 上的背景颜色

macos - 如何强制基于 View 的 NSOutlineView 重新加载项目的 View ?

swift - (Swift) - 多次调用 touchesBegan

ios - 适用于 IOS 的 QRCode 扫描器应用程序出现 fatal error