Как получить доступ к переменной экземпляра внутри блока событий мыши?
Это не работает, даже если я вызываю другой метод из определения события мыши.Rubymotion: как я могу получить доступ к переменной экземпляра изнутри блока mouseDown (event)?
Единственный способ, которым я нашел сейчас, - объявить переменную как переменную класса, но я не думаю, что это правильный путь.
обновляется с новым кодом
app_delegate.rb
class AppDelegate
def applicationDidFinishLaunching(notification)
@view = ViewController.new
end
end
view_controller.rb
class ViewController < NSView
def init
@var = "method called from event"
loadWindow
end
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)
@window.orderFrontRegardless
@window.makeKeyWindow
runEvent # <- This puts "method called from event"
end
def runEvent
puts @var
end
def mouseDown event
runEvent # <- This puts a blank line
puts "mouse click"
end
end
спасибо, теперь это более понятно. И я думаю, что мне действительно нужно больше читать по объективу c. Но мне нравятся грязные руки ... – vash
Да, есть чему поучиться. Попадание в руки грязных/погружений - отличный способ узнать, если вы также готовы прочитать документы. :) –
Используя rubymotion, я надеялся, что базового знания Objective C было достаточно. Очевидно, я был неправ. Можете ли вы порекомендовать некоторое полезное чтение, помимо ссылки на класс apple? – vash