Just as an extra FYI, you are indeed blocking the main thread by using `sleep 1`, which is a synchronous call and thus in that one second no other code on the same thread will have a chance to update your views. On Wed, May 25, 2011 at 7:50 AM, Thomas R. Koll <info@ananasblau.com> wrote:
Laurent is right and and I think best would be for you to use a NSTimer.
def drawWord if !next_word self.timer.invalidate return end self.label.stringValue = next_word self.setNeedsDisplay true end
def next_word ... end
self.timer = NSTimer.scheduledTimerWithTimeInterval( 1/20.0, target:self, selector:"drawWord:", userInfo:nil, repeats:true)
Am 25.05.2011 um 02:06 schrieb azzzz@gmx.net:
I have a label that I have set to blank, and after a user clicks 'go' I generate a random word or number and use:
self.label.stringValue = "some_word"
to update the view.
However, I would like to show 200 or so random words in quick succession before the final one is shown - just because it's too plain at the moment. Alternatively, I'd be happy with showing an animated graphic in its place - which is replaced by the final random word after a few seconds.
I've tried things like:
100.times do num = rand(40) self.label.stringValue = num sleep 1 end
But it doesn't work. I've also (after googling) tried .reloadData but to no avail as well.
Any ideas on how to achieve this? Or pointers on how to add animations to my window/views?
-- Thomas R. "TomK32" Koll, Ruby/Rails freelancer http://ananasblau.com | http://github.com/TomK32
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel