PDA

View Full Version : unable to show back the NSWindow when using CGDisplay




Monaj
Jun 8, 2011, 10:46 AM
Hi all,

I am making an application in which:

1. when user selects display menu option -> the window is displayed over whole screen and
2. when user selects hide menu option - >the window which was visible over whole screen gets hidden.

Problem is -

When I am performing step 1 then step 2nd then step 1, the window does not appear as it appeared for the first time.

Can anyone suggest me, how can I resolve it?

Below is the part of code:

- (IBAction)hideMenuAction:(id)sender
{
[window orderOut:nil];
if (CGDisplayRelease( kCGDirectMainDisplay ) != kCGErrorSuccess) {
NSLog( @"Couldn't release the main display!" );
}
}

- (IBAction)displayMenuAction:(id)sender
{
[window makeKeyAndOrderFront:nil];
if (CGDisplayCapture( kCGDirectMainDisplay ) != kCGErrorSuccess) {
NSLog( @"Couldn't capture the main display!" );
}
[window setLevel:CGShieldingWindowLevel()];
}

Thanks,

Monaj



kainjow
Jun 8, 2011, 12:15 PM
Maybe you need to reset the window level?

Monaj
Jun 8, 2011, 11:39 PM
The problem is resolved when I placed the code line: [window makeKeyAndOrderFront:nil]; below the if block in displayMenuAction.

So now the code is:

- (IBAction)displayMenuAction:(id)sender
{
if (CGDisplayCapture( kCGDirectMainDisplay ) != kCGErrorSuccess) {
NSLog( @"Couldn't capture the main display!" );
}
[window makeKeyAndOrderFront:nil];
[window setLevel:CGShieldingWindowLevel()];
}

Monaj
Jun 9, 2011, 09:18 AM
I have started facing a new problem:

When I am performing step 1 then step 2nd then step 1, the text fields on window are appearing un-editable. I tried to set them as editable in code but it didn't work.

Please suggest.