#712: Feature Request: Add Support for C-Level Blocks
-------------------------------+--------------------------------------------
Reporter: cwdi...@… | Owner: lsansone...@…
Type: enhancement | Status: new
Priority: blocker | Milestone: MacRuby 0.7
Component: MacRuby | Keywords: block
-------------------------------+--------------------------------------------
The following (proposed) syntax should work:
{{{
open_panel = NSOpenPanel.openPanel
open_panel.beginSheetModalForWindow(@main_window,
completionHandler:lambda{|arg|
puts "Hello, open file and user arg is #{arg}"
}
)
}}}
Also, this should work:
{{{
def handler(arg)
puts "Hello, open file and user arg is #{arg}"
end
open_panel = NSOpenPanel.openPanel
open_panel.beginSheetModalForWindow(@main_window,
completionHandler:handler)
}}}
There may be a more elegant Rubyish way to do this, but I'm not seeing how
the proper selector syntax would be created. Here's what I mean:
{{{
open_panel = NSOpenPanel.openPanel
open_panel.beginSheetModalForWindow(@main_window) do |arg|
puts "Hello, open file and user arg is #{arg}"
end
}}}
But the last example gives no hint that the block selector should be
completionHandler:
--
Ticket URL: <http://www.macruby.org/trac/ticket/712>
MacRuby <http://macruby.org/>
_______________________________________________
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel