So It seems to me the only change there is uninlining the lambda and assigning 
it to a throwaway variable. That feels like busywork.

I suspect this has to do with keeping a reference so it doesn't get GC'd. Just 
a hunch. Am I getting there?

Why is this needed?


On 2011-01-09, at 17:10 , Matt Aimonetti wrote:
> 
> I realize I didn't really reply to your question, the following code should
> work:
> 
> {{{
> def loadSprite(sender)
>   handler = lambda do |code|
>     return if code == NSCancelButton
>     # do things with the panel's date otherwise
>  end
> 
>   @panel.beginSheetModalForWindow(@window, completionHandler: handler)
> end
> }}}
> 
> - Matt
> 
> 
> On Sun, Jan 9, 2011 at 8:09 AM, Rolando Abarca 
> <[email protected]>wrote:
> 
>> Hi all,
>> 
>> I've taken a look at the referred issue (#712), but I'm not sure of
>> the final implemented syntax. I'm trying to use a NSOpenPanel, so far
>> this is what I'm doing:
>> 
>> 
>> {{{
>> def loadSprite(sender)
>>   @panel.beginSheetModalForWindow(@window, completionHandler:lambda {
>> |code|
>>     NSLog("code: #{code}")
>>   })
>> end
>> }}}
>> 
>> what's the Right Way(tm) to use a NSOpenPanel?
>> thanks!
>> --
>> Rolando Abarca M.
>> Games For Food S.p.A.
>> http://www.gamesforfood.com
>> Phone: +1 (408) 345-5433
>> _______________________________________________
>> MacRuby-devel mailing list
>> [email protected]
>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>> 
> _______________________________________________
> MacRuby-devel mailing list
> [email protected]
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel


_______________________________________________
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to