Here is a wild wild guess, perhaps I want to have my NSWindow to somehow belong to the menubar application. So technically, it looks like a window, but actually is just NSView drawn out from the menubar with no NSWindow but accepts keyboard/mouse events? Is it possible to have NSView without NSWindow? Or is this all crazy talk from the caffeinated drinks?
-- john k. On Fri, Jun 12, 2009 at 3:15 PM, John Ku <[email protected]> wrote: > I got to play around > with your suggestions but still cannot get it to not loose focus. Thought it > did give me a better perspective on how levels, frames, keys work. > Thank you for that. > I have the NSWindow and removed NSView for testing, but when I clicked on > the NSWindow, it'll still switch focus to it. I got the level working, > always floating ontop of windows, but just need a way for my app to not > become key or attract focus, but still able to receive keyboard/mouse > events. > > I have set FirstResponders, CanBecomeKey, at various settings but could not > get it right. If anyone can offer any leads, that would be appreciated. > > Thanks, > john > > On Fri, Jun 12, 2009 at 1:00 AM, Chunk 1978 <[email protected]> wrote: > >> if you don't want your apps window to become focused, you have to >> return NO on canBecomeKeyWindow, but if you want it to appear above >> the other windows, you should set it's level higher. here's some code >> you can use as a guide: >> >> -=-=-=-=- >> #import "DesktopWindow.h" >> >> @implementation DesktopWindow >> >> - (id)initWithContentRect:(NSRect)contentRect styleMask:(unsigned >> int)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag >> { >> [super initWithContentRect:contentRect >> styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered >> defer:NO]; >> [self setLevel: NSNormalWindowLevel +1]; >> >> // there are several window levels, check the documentation for the >> one that you require, and make sure that it's lower than the >> screensaver if you don't want it to be visible when the screensaver is >> active. >> >> [self setBackgroundColor:[NSColor colorWithDeviceWhite:1.0 >> alpha:1.0]]; >> [self setOpaque:YES]; >> NSRect screenFrame = [[NSScreen mainScreen] frame]; >> [self setFrame:screenFrame display:YES]; >> >> return self; >> } >> >> - (BOOL)canBecomeKeyWindow >> { >> return NO; >> } >> >> @end >> -=-=-=-=-=- >> >> On Fri, Jun 12, 2009 at 3:11 AM, John Ku<[email protected]> wrote: >> > Thank you, I had that implemented. The problem still persist where my >> > subclass of NSWindow gets focused and deactivates the current running >> > program's window. >> > I want to have NSWindow to get keyboard/mouse events and still not >> > deactivate/lose focus of your current running application. >> > >> > Let's say I have Safari in focus, >> > currently running, and when user clicks on my menu bar application, pop >> up >> > menu appears and listens for keyboard/mouse events. But safari window >> still >> > remains active, or at least doesn't lose focus on the window. >> > >> > Thanks, >> > John >> > >> > On Thu, Jun 11, 2009 at 11:59 PM, Chunk 1978 <[email protected]> >> wrote: >> > >> >> NSBorderlessWindowMask (i think that's what it's called) is what >> >> you're looking for. Apple supplies a sample app here: >> >> >> http://developer.apple.com/samplecode/RoundTransparentWindow/index.html >> >> >> >> On Fri, Jun 12, 2009 at 1:51 AM, John Ku<[email protected]> wrote: >> >> > What I am trying to achieve is like CoverSutra's: >> >> > screenshot1.png< >> >> >> http://sophiestication.s3.amazonaws.com/images/coversutra/screenshot1.png >> > >> >> > A menu bar pop up menu where there is key/responder event but yet >> doesn't >> >> > switch away from the current running application. >> >> > >> >> > I experiemented with various NSWindow settings, but it always >> deactivates >> >> > the current application and switches to my app. >> >> > >> >> > I am a starting coder so I haven't fully comprehended Apple's >> provided >> >> > documents. But my wild wild guess is drawing an NSView directly >> without >> >> > NSWindow. Would this work? Is this >> >> > possible? What other ways can this be done? >> >> > >> >> > >> >> > Thank you all, >> >> > John >> >> > _______________________________________________ >> >> > >> >> > Cocoa-dev mailing list ([email protected]) >> >> > >> >> > 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/chunk1978%40gmail.com >> >> > >> >> > This email sent to [email protected] >> >> > >> >> _______________________________________________ >> >> >> >> Cocoa-dev mailing list ([email protected]) >> >> >> >> 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/john.cmyk%40gmail.com >> >> >> >> This email sent to [email protected] >> >> >> > _______________________________________________ >> > >> > Cocoa-dev mailing list ([email protected]) >> > >> > 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/chunk1978%40gmail.com >> > >> > This email sent to [email protected] >> > >> _______________________________________________ >> >> Cocoa-dev mailing list ([email protected]) >> >> 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/john.cmyk%40gmail.com >> >> This email sent to [email protected] >> > > _______________________________________________ Cocoa-dev mailing list ([email protected]) 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 [email protected]
