2016-09-28 2 views
0

Я нахожу mouseDown, но не mouseMoved. Как это можно вызвать mouseMoved? Вот мой код:Мышь NSViewMoved никогда не будет называться

@available(OSX 10.10, *) 
class MainView: NSView{ 
    override var acceptsFirstResponder: Bool { return true } 

    override func draw(_ dirtyRect: NSRect){ 
    titledString.draw(at:NSPoint(x:20,y:40)) 
    } 
    override func mouseDown(with event: NSEvent){ 
    //print("Mouse down") 
    printMouseDown() 
    } 
    override func mouseMoved(with event: NSEvent){ 
    //print("Mouse down") 
    super.mouseMoved(with:event) 
    printMouseMove() 
    } 
} 

что это? как я могу изменить коды

p.s. здесь коды драйверов:

@available(OSX 10.10, *) 
class AppDelegate: NSObject, NSApplicationDelegate { 
    let window = NSWindow() 
    func applicationDidFinishLaunching(_ notification: Notification){ 
    window.setContentSize(NSSize(width:200, height:160)) 
    window.styleMask = [.titled, .closable, .miniaturizable] 
    window.level = 1 
    window.title = "Test" 
    window.acceptsMouseMovedEvents = true 
    window.contentView = MainView() 
    window.center() 
    window.makeKeyAndOrderFront(window) 
    } 
} 

if #available(OSX 10.10, *){ 
    let app = NSApplication.shared() 
    let appDelegate = AppDelegate() 
    app.delegate = appDelegate 
    app.run() 
} 

ответ

0

Вы должны установить делегат:

view.acceptsMouseMovedEvents = YES; 
+0

не понимаю. Не могли бы вы сказать больше? – Choasgtfe

+0

Событие MouseMouved необходимо, чтобы его делегат работал. Таким образом, вы должны поместить эту строку в awakeFromNib, viewWillAppear или что-то еще. – StrawHara

+0

В последнем быстром: https://developer.apple.com/reference/appkit/nsview, он обесценивается – Choasgtfe

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