Apple Event: May 7th at 7 am PT

Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

Show Window without activating (keep application below it active)

I need to show a window (without title bar) above third party applications without my window taking focus.

I have tried using an

NSPanel
and setting enabling non-activating, but that didn't help.

I tried

orderFront:self
, but that didn't help either.

I always needed to add

[NSApp activateIgnoringOtherApps:YES];
because the window wouldn't show otherwise.

I have here a sample project for just this functionality:
http://users.telenet.be/prullen/TopW2.zip

UIElement
is set to
true
in the application's plist file, so there is no dock. You can activate the window by pressing
ALT + SPACE
at the same time. You will see that the app below it looses focus. Any thoughts on how to fix this? I've seen other apps do it so I know it's possible.

Edit: here's the code so far. Remember the window is a non-activating NSPanel. I still need that last

NSApp activateIgnoringOtherApps
line or otherwise it doesn't display. But of course that makes the window the active one.
 _windowController =[[MyWindowController alloc] initWithWindowNibName:@"MyWindowController"];
[[_windowController window] setLevel:NSNormalWindowLevel+1];
[[_windowController window] orderFrontRegardless];
[_windowController showWindow:self];
[NSApp activateIgnoringOtherApps:YES];

I've also subclassed NSPanel and added two methods:

-(BOOL)canBecomeKeyWindow {return NO;}
-(BOOL)canBecomeMainWindow {return NO;}
(I also tried canBecomeKeyWindow return YES and several other levels (for setLevel).


Any ideas?

Posted on Feb 26, 2013 2:06 AM

Reply

There are no replies.

Show Window without activating (keep application below it active)

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.