Edit: это первая часть была решенаRubymotion: как я могу определить событие mouseDown для NSView?
Извините за, вероятно, нуб вопрос, но я искал в течение двух дней, не находя ответа. Я прочитал документацию Objective-C по обработке событий, но я действительно не могу перевести это на Rubymotion.
Я просто пытаюсь определить событие mouseDown в NSView, которое содержит подвью с изображением.
Подсказка? Спасибо.
Новый выпуск
Пример кода:обновляется с новым вопросом (смотреть на комментарии)
class ViewController < NSView
def loadWindow
@window = NSWindow.alloc.initWithContentRect([[400, 500], [480, 200]],
styleMask: NSTitledWindowMask|NSClosableWindowMask,
backing: NSBackingStoreBuffered,
defer: false)
@window.setTitle("Test")
@cView = ViewController.alloc.initWithFrame([[400,500], [480, 200]])
@window.setContentView(@cView)
@iView = NSImageView.alloc.initWithFrame([[100,100], [30, 30]])
@iView.setImage(NSImage.imageNamed "Icon")
@cView.addSubview(@iView)
@window.orderFrontRegardless
@window.makeKeyWindow
@var = "variable"
puts @var # This works and puts "variable"
end
def mouseDown(event)
puts "mouse click" # This puts "mouse click"
puts @var # This puts a blank line
end
end
Я уже пробовал так, но это не работает. Может быть, мне не хватает чего-то другого. – vash
Я обновил первое сообщение с помощью примера – vash
@vash, правильно ли вы подклассифицировали свое представление, потому что это правильный способ сделать это. Вы должны просмотреть свой код, так как у вас есть класс ViewController, который наследуется от NSView ... – siekfried