[MacRuby-devel] Dynamic refresh in a view - xcode 4 / MacRuby

Eloy Duran eloy at dekleineprins.me
Wed May 25 04:20:02 PDT 2011


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 at 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 at 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 at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>


More information about the MacRuby-devel mailing list