В Swift: я создал простой NSView и теперь хочу выполнять разные функции в зависимости от того, какая кнопка мыши нажата (левая или правая). как я могу обнаружить это?
Обнаружение левого и правого щелчка мыши на NSView
Ответы (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
Спасибо! Но как я могу адаптировать этот пользовательский класс? Или это переопределяет каждый NSView? Я объявил NSView как
let theView = NSView()
. Но я думаю, что мне нужно указать, что моя переменная зависит от MyView
?
- person ixany; 29.01.2015
NSView сам по себе бесполезен, разве что в качестве контейнера для других представлений. Это одна из вещей, которые вы обычно подклассируете, чтобы получить нужное вам поведение. В вашем случае вы обнаруживаете левый и правый клики и что-то с ними делаете.
- person Warren Burton; 29.01.2015
Решил мою проблему, а также... Я многое узнал о подклассах. Большое спасибо!
- person ixany; 01.02.2015