Я делаю приложение, в котором:
- , когда пользователь выбирает опцию меню дисплея -> окно отображается на весь экран, и
- , когда пользователь выбирает опцию меню спрятать ->окно, которое было видно по всему экрану, скрыто.
Проблема в том, что -
Когда я выполняю шаг 1, затем шаг 2, а затем шаг 1, окно не появляетсякак оно появилось в первый раз.
Может кто-нибудь подсказать мне, как мне его решить?
Ниже приведена часть кода:
- (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()];
}
Редактировать:
Проблема решена, когда я поместил строку кода: [window makeKeyAndOrderFront: nil];ниже блока if в displayMenuAction.Используемый код:
- (IBAction)displayMenuAction:(id)sender
{
if (CGDisplayCapture( kCGDirectMainDisplay ) != kCGErrorSuccess) {
NSLog( @"Couldn't capture the main display!" );
}
[window makeKeyAndOrderFront:nil];
[window setLevel:CGShieldingWindowLevel()];
}
Но я столкнулся с новой проблемой:
Когда я выполняю шаг 1, затем шаг 2, затем шаг 1, текстовые поля в окнепоявляются не редактируемыми.Я пытался установить их как редактируемые в коде, но это не сработало.
Пожалуйста, предложите.