Hi, I was trying to setup an async callback using a proc instead of a method to register for app launching notifications. For some reason, when I use the proc method, I get the wrong object passed to the proc when it gets called.
The version using a method callback: framework 'Cocoa' def callback notif puts notif.class puts notif.inspect puts notif.userInfo.inspect end def launch_mail workspace = NSWorkspace.sharedWorkspace workspace.notificationCenter.addObserver self, selector:'callback:', name:NSWorkspaceDidLaunchApplicationNotification, object:nil workspace.launchAppWithBundleIdentifier 'com.apple.mail', options:NSWorkspaceLaunchAsync, additionalEventParamDescriptor:nil, launchIdentifier:nil end launch_mail NSRunLoop.currentRunLoop.runUntilDate( Time.now + 5 ) That code will work the way that I expected it to, but if I try to use a proc: framework 'Cocoa' callback = Proc.new { |notif| puts notif.class puts notif.inspect puts notif.userInfo.inspect } workspace = NSWorkspace.sharedWorkspace workspace.notificationCenter.addObserver callback, selector:'call:', name:NSWorkspaceDidLaunchApplicationNotification, object:nil workspace.launchAppWithBundleIdentifier 'com.apple.mail', options:NSWorkspaceLaunchAsync, additionalEventParamDescriptor:nil, launchIdentifier:nil NSRunLoop.currentRunLoop.runUntilDate( Time.now + 5 ) It will crash because for some reason I am not getting the notification back as I should, instead I am getting a reference to the NSDictionary class. I don't think this is the intended behaviour in MacRuby, but I'm not sure if what I am trying to do is supported. Is the ability to use a proc as a callback a supported feature? It has worked for me in other cases. Mark Rada mr...@marketcircle.com _______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel