Текстовые поля отображаются не редактируемыми при показе окна обратно с помощью CGDisplay - PullRequest
0 голосов
/ 08 июня 2011

Я делаю приложение, в котором:

  1. , когда пользователь выбирает опцию меню дисплея -> окно отображается на весь экран, и
  2. , когда пользователь выбирает опцию меню спрятать ->окно, которое было видно по всему экрану, скрыто.

Проблема в том, что -

Когда я выполняю шаг 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, текстовые поля в окнепоявляются не редактируемыми.Я пытался установить их как редактируемые в коде, но это не сработало.

Пожалуйста, предложите.

1 Ответ

1 голос
/ 09 июня 2011

Определено ли окно в кончике? Если да, активен ли флажок «Выпуск при закрытии»? Если это так, то когда окно закрыто, оно будет освобождено.

...