2010-12-11 4 views
1

Я успешно зарегистрировал горячую клавишу; его обработчик выводит окно приложения на передний план: [NSApp activateIgnoringOtherApps: YES]; (предполагается, как минимум).Какао: как открыть закрытое окно

У меня есть ожидаемое поведение, когда окно моего приложения находится не спереди.
Но это не работает, когда я закрываю окно (нажатие на красный x) или когда я минимизирую его (щелкнув желтый -). Я все еще вижу журнал, так что вызывается обработчик.

Любые идеи?

Спасибо.
-L

ответ

6

Я бы установить окно, чтобы иметь следующие атрибуты в бобах:

alt text

Ключевые вещи являются, если вы планируете иметь окно открытым и закрытым в несколько раз, чтобы убедиться, что «Release при закрытии "не установлен. Вы также можете снять флажок «Visible at Launch», чтобы было более ясно, что вы сами будете обрабатывать отображение окна в коде. (Это присутствие этого флага, который, вероятно, отвечает за то, что ваше окно отображается вообще, сразу же после загрузки ножа).

Чтобы отобразить окно в коде, просто сделать что-то вроде следующего (если у вас есть в IBOutlet для окна):

[window makeKeyAndOrderFront:nil]; 
+0

Спасибо! Сочетание makeKeyAndOrderFront и activateIgnoringOtherApps исправило эту проблему. – LG01

2

Вы должны явно указать, что окно появится на экране. activateIgnoringOtherApps: не открывает все ранее закрытые окна.

+0

Спасибо. Я добавил вызов makeKeyAndOrderFront, и он сделал трюк. – LG01