使用视图控制器运行mouseEntered函数

时间:2015-08-05 14:58:23

标签: macos swift cocoa

我开始使用Swift并拥有一个非常基本的OSX应用程序。我使用故事板添加视图,并在其中添加了一个webview。

但是,当鼠标进入该视图时,我似乎无法运行某个功能。

这是我的视图控制器。在底部,你可以看到我有一个功能,当鼠标进入视图时设置一些窗口属性。

import Cocoa
import WebKit

class ViewController: NSViewController {

    @IBOutlet weak var webView: WebView!
    @IBOutlet weak var progressIndicator: NSProgressIndicator!

    override func viewDidAppear() {
        super.viewDidAppear()

        let urlString = "http://google.com"

        self.webView.mainFrame.loadRequest(NSURLRequest(URL: NSURL(string: urlString)!))
    }

    override var representedObject: AnyObject? {
        didSet {
            // Update the view, if already loaded.
        }
    }

    override func webView(sender: WebView!, didStartProvisionalLoadForFrame frame: WebFrame!) {
        self.progressIndicator.startAnimation(self)
    }

    override func webView(sender: WebView!, didFinishLoadForFrame frame: WebFrame!) {
        self.progressIndicator.stopAnimation(self)
    }

    override func mouseEntered(event: NSEvent) {
        self.view.window?.titleVisibility = .Hidden
        self.view.window?.titlebarAppearsTransparent = true
        self.view.window?.styleMask |= NSFullSizeContentViewWindowMask
    }

}

非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

要在NSViewController中使用NSResponder方法(如mouseEntered:,mouseDown:,mouseUp:等),您应该为此初始化跟踪区域。

查看“Using Tracking-Area Objects”Apple指南。