Обнаружение левого и правого щелчка мыши на NSView

В Swift: я создал простой NSView и теперь хочу выполнять разные функции в зависимости от того, какая кнопка мыши нажата (левая или правая). как я могу обнаружить это?


person ixany    schedule 28.01.2015    source источник


Ответы (1)


Вы перехватываете соответствующие mouseDown события

import Cocoa

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

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

Подробнее см. NSResponder. .

Свифт 4

import Cocoa

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

    override func rightMouseDown(with theEvent: NSEvent) {
        print("right mouse")
    }
}
person Warren Burton    schedule 28.01.2015
comment
Спасибо! Но как я могу адаптировать этот пользовательский класс? Или это переопределяет каждый NSView? Я объявил NSView как let theView = NSView(). Но я думаю, что мне нужно указать, что моя переменная зависит от MyView? - person ixany; 29.01.2015
comment
NSView сам по себе бесполезен, разве что в качестве контейнера для других представлений. Это одна из вещей, которые вы обычно подклассируете, чтобы получить нужное вам поведение. В вашем случае вы обнаруживаете левый и правый клики и что-то с ними делаете. - person Warren Burton; 29.01.2015
comment
Решил мою проблему, а также... Я многое узнал о подклассах. Большое спасибо! - person ixany; 01.02.2015