Hi Guys, I am writing a hotcocoa app, and I want to register a global keyboard shortcut so that I can perform an action in my app from any application.
AFAIK you need to go down to Carbon to do this as documented here: http://cocoasamurai.blogspot.com/2009/03/global-keyboard-shortcuts-with-carbon.html This is the code I have so far: http://gist.github.com/114372 When I try and package this as a bundle using the technique that Laurent demonstrated earlier in this thread I get these errors: isaac:~/src/tasks isaac$ gcc shortcut.m -o shortcut.bundle -g -framework Foundation -dynamiclib -fobjc-gc -arch i386 -arch x86_64 shortcut.m: In function ‘-[Shortcut addShortcut]’: shortcut.m:25: warning: passing argument 1 of ‘InstallEventHandler’ makes pointer from integer without a cast shortcut.m:28: warning: passing argument 4 of ‘RegisterEventHotKey’ makes pointer from integer without a cast Undefined symbols: "_GetApplicationEventTarget", referenced from: -[Shortcut addShortcut] in cckmYEc0.o -[Shortcut addShortcut] in cckmYEc0.o "_RegisterEventHotKey", referenced from: -[Shortcut addShortcut] in cckmYEc0.o "_InstallEventHandler", referenced from: -[Shortcut addShortcut] in cckmYEc0.o ld: symbol(s) not found collect2: ld returned 1 exit status Undefined symbols: "_GetApplicationEventTarget", referenced from: -[Shortcut addShortcut] in ccIWfnrB.o -[Shortcut addShortcut] in ccIWfnrB.o "_RegisterEventHotKey", referenced from: -[Shortcut addShortcut] in ccIWfnrB.o "_InstallEventHandler", referenced from: -[Shortcut addShortcut] in ccIWfnrB.o ld: symbol(s) not found collect2: ld returned 1 exit status lipo: can't open input file: /var/folders/sm/smWEZrv7GueXZu2JpgAAuU+++TI/-Tmp-//ccX5Acy0.out (No such file or directory) I really have no idea what I'm doing here, so any ideas would be appreciated :) Cheers, Isaac On Mon, Apr 20, 2009 at 11:49 PM, victor jalencas < macruby-de...@principia.info> wrote: > Many thanks John and Laurent. > > After reading your messages I came back to XCode and discovered I had > made a typo in the ObjC part of the code (which, curiously, compiled) > and that's why my ruby code didn't find my selector. > > As for calling ruby code from the obj-c side, I agree it's a bit > convoluted (not to mention deprecated). I hope there's a better way to > do that in store for upcoming versions. If I understood well your > example, you first created the Obj-C subclass and later, dynamically, > set its parent to be the ruby class. Anyway, seeing that the norm in > Cocoa is delegation rather than extension, and if all ruby classes are > readily available in Obj-C, I think I'll manage with just calling ruby > code instead of extending it. Apparently I lacked only calling the > sharedRuntime method, will need to experiment a bit more when I get > back to my Mac. > > > > cheers, > Victor > > -- > -- > Victor Jalencas <vic...@carotena.net> > _______________________________________________ > MacRuby-devel mailing list > MacRuby-devel@lists.macosforge.org > http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel >
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel