xcode - 如何在 Xcode 中将 NSClickGestureRecogniser 与 Swift 一起使用?

标签 xcode macos swift click gestures

我已将 NSClickGestrueRecogniser 附加到 Storyboard,然后将 @IBaction 连接到 ViewController,所以我的理解是,这将 View 连接到 View Controller ,从而允许 Controller 了解点击何时发生。

我的目标是当用户单击整个 View 内的任意位置时让 Controller 执行某个功能。

下面是我的类(class)设置

import Cocoa
import WebKit
import Foundation
import AppKit

class SecondViewController: NSViewController, NSGestureRecognizerDelegate {

    @IBOutlet weak var webView: WebView!

    @IBAction func clickG(gesture: NSClickGestureRecognizer) {
        switch gesture.state  {
        case .Changed: fallthrough
        case .Ended:
            println("Clicked")
            if webView.mainFrameURL.rangeOfString("url") == nil {
                println(webView.mainFrameURL)
            } else {
                println("Success = \(webView.mainFrameURL)")
            }
        default:
            println("Unknown")
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do view setup here.

        let urlString = "www.google.com"
        let urltest = NSURL(string: urlString)!
        self.webView.mainFrame.loadRequest(NSURLRequest(URL: urltest))
    }

}

我还设置了 webView,但我想知道何时有人在 webView 或实际 View 中单击。

最佳答案

这并不难做到。只需声明一个 NSClickGestureRecognizer 实例。然后传递选择器,例如; Selector("buttonGesture:") 并附加手势识别器。

然后您可以简单地创建一个函数来处理“buttonGesture”事件。您的处理程序将手势对象作为 View 提供。

More information: https://developer.apple.com/library/prerelease/mac/documentation/AppKit/Reference/NSClickGestureRecognizer_Class/index.html

关于xcode - 如何在 Xcode 中将 NSClickGestureRecogniser 与 Swift 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31857118/

相关文章:

ios - 为什么 Xcode 认为我的变量在应该返回 NSString 时返回了 NSURL?

xcode 从字符串中删除最后一个字符

swift - 如何在另一个 UIViewController 中显示使用 Google Sign In 和 Firebase 登录的用户名

ios - CoreData 中的数据验证问题

java - 我的 Ubuntu 安装上的 Java 版本是 "1.8.0_191"?

ruby-on-rails - 由于无效选项 : --include-dependencies,Rails 安装失败

swift - 使用 Swift 3 在 Mac 上获取首选 wifi 网络列表

ios - tabBarItem 图像质量差

ios - clang : error: linker command failed with exit code 1 (use -v to see invocation); "__TMaC15PasswordManager14ViewController", 引用自:

ios - Facebook Graph API GET 请求 - 应包含 "fields"参数(Swift,Facebook SDK v4.5.1)