2015-08-05 3 views
0

Я начинаю с Swift и имею очень основное приложение OSX, которое работает. Я использовал раскадровку, чтобы добавить представление и в пределах этого веб-представления.Запустите mouseEntered функцию с контроллером вида

Однако я не могу запустить функцию, когда мышь входит в это представление.

Это мой контроллер. Внизу вы можете увидеть, что у меня есть функция для установки некоторых свойств окна, когда мышь входит в представление.

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

Чтобы использовать методы NSResponder (например, mouseEntered :, mouseDown :, mouseUp: etc.) в NSViewController, вы должны инициализировать область отслеживания для этого.

Проверьте «Using Tracking-Area Objects» Руководство Apple.

Смежные вопросы