2015-01-28 6 views

ответ

12

Ловить соответствующие mouseDown события

import Cocoa 

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

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

См NSResponder для дополнительной магии.

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

Спасибо! Но как я могу адаптировать этот пользовательский класс? Или это переопределяет каждый NSView? Я объявил NSView, как 'let theView = NSView()'. Но я думаю, что мне нужно указать, что моя переменная зависит от «MyView»? – ixany

+0

NSView сам по себе не так полезен, за исключением контейнера для других видов. Это одна из вещей, которые вы обычно используете в подклассе, чтобы получить нужное вам поведение. В вашем случае вы обнаруживаете левый и правый клики и делаете что-то с ними. –

+0

Решил мою проблему, а также ... Я много узнал о подклассе. Спасибо огромное! – ixany

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