2015-01-28 12 views

risposta

12

È intrappolare i corrispondenti mouseDown eventi

import Cocoa 

class MyView : NSView { 
    override func mouseDown(theEvent : NSEvent) { 
     println("left mouse") 
    } 

    override func rightMouseDown(theEvent : NSEvent) { 
     println("right mouse") 
    } 
} 

Vedi NSResponder per più magico.

Swift 4

import Cocoa 

class MyView : NSView { 
    override func mouseDown(with theEvent: NSEvent) { 
     print("left mouse") 
    } 

    override func rightMouseDown(with theEvent: NSEvent) { 
     print("right mouse") 
    } 
} 
+0

Grazie! Ma come posso adattare questa classe personalizzata? O sta sovrascrivendo ogni NSView? Ho dichiarato NSView come 'let theView = NSView()'. Ma penso di dover specificare che la mia variabile dipende da 'MyView'? – ixany

+0

NSView di per sé non è utile se non come contenitore per altre viste. È una delle cose che generalmente sottoclassi per ottenere il comportamento di cui hai bisogno. Nel tuo caso stai rilevando clic sinistro e destro e fai qualcosa con loro. –

+0

Risolto il mio problema e anche ... Ho imparato molto sulla sottoclasse. Grazie mille! – ixany

Problemi correlati