On Feb 4, 2009, at 8:02 AM, Yang Meyer wrote:

I want to open another application (say, Safari) in the "layer" just behind my application.

"Solution" 2:
        [ws launchApplication:@"Safari"]; // opens Safari in front
[NSApp activateIgnoringOtherApps:YES]; // pushes my app in front, effectively right above Safari

Problem with solution 2: I must be doing it wrong, because my own application's window doesn't ever get its focus back and the GUI seems to hang.

I think that -activateIgnoringOtherApps: is being done "too soon". The NSApplicationDeactivatedEventType event is pending and hasn't had a chance to be processed, yet. So, you need to make arrangements to call -activateIgnoringOtherApps: after a short delay. You can use - performSelector:withObject:afterDelay:, but you can't use - activateIgnoringOtherApps: directly, because it doesn't have the required signature. So, you have to implement a simple trampoline method.

Cheers,
Ken

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to