Le 16 juil. 08 à 13:01, Fabian a écrit :

Hi,

I only have one monitor, so I'm having a bit of a problem figuring this out.

I have a (borderless) window that should be displayed on any display
chosen by the user. I figured the code below would do the trick, but
apparently it's a no go (I use setFrameFromString: when the app is
launched; this is when settings are changed during runtime):

NSRect screenRect = [[NSScreen mainScreen] frame];
NSArray *screens = [NSScreen screens];
int preferredDisplay =  [[[NSUserDefaults  standardUserDefaults]
objectForKey:@"PreferredDisplayID"] intValue];

for (id screen in screens ) {
                CGDirectDisplayID display = (CGDirectDisplayID) [[[screen
deviceDescription] valueForKey:@"NSScreenNumber"] unsignedIntValue];
                if ( preferredDisplay == display ) {
                        screenRect = [screen frame];
                        break;
                }
}

[win setFrame:screenRect display:YES];


Please advice.

Thanks
F.

The screen frame origin represent the screen position relative to the whole space. (a point relative to the main screen origin (the one with the menu bar)).

The window frame origin is a position relative to the screen origin.

Try this:

screenRect.origin = NSZeroPoint;
[win setFrame:screenRect display:YES];


_______________________________________________

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]

Reply via email to