2013-10-27 2 views
0

На прошлой неделе я потратил много времени на то, чтобы справиться со следующей проблемой. Я решил это, но так как я не мог найти ответ здесь, и я хочу поделиться своим решением для всех, кто сталкивается с этим.Unresponsive UI Elements после закрытия NSWindow


Проблема: Мое приложение работает в фоновом режиме (строки меню) и его основной NSWindow содержит все предпочтения моего приложения. Вы закрываете NSWindow, нажав кнопку закрытия в левом верхнем углу. После закрытия NSWindow и его повторного открытия все NSControl s не визуально отвечали. Действия работали соответственно, но они не обновлялись.

Я попытался следующие:

  • Непроверка "Освобождение от близко" в IB для NSWindow
  • Перезагрузка NSWindow от СИБ
  • Сильные ссылки для всех NSControl s
  • Вызов «Стань первым ответчиком» на NSControl s
  • перегрузочный все родительские NSView s
  • Реализация всех делегатов Подключаем каждый NSControl (работал на NSControl, но было слишком много работы, чтобы использовать его для всех и каждого)
  • Отключение и затем повторное включение NSControl s

Я напишу свое решение ниже для записей.

ответ

0

Мое решение этой проблемы было подкласс NSWindow и переписать следующие методы:

- (void)performClose:(id)sender{ 
    [self orderOut:nil]; 
} 

- (void)close{ 
    [self orderOut:nil]; 
} 

Теперь NSWindow является скрытый/приказал, и вы просто должны заказать его обратно при отображении его ,

Смежные вопросы