Закрытие переднего окна в Какао в приложении без строки меню - PullRequest
2 голосов
/ 21 мая 2011

Я создаю приложение StatusBar в Какао, поэтому у меня нет меню. Отсутствие меню подразумевает отсутствие элемента меню «Файл> Закрыть», который обычно слушает ярлык «Command + W».

Из моего приложения StatusBar пользователь может открыть окно для изменения настроек, и вот тут я сталкиваюсь с проблемами: пользователь может только закрыть окно, нажав красную точку с помощью мыши. Однако, как и все приложения, я хочу также поддерживать ярлык «Command + W».

На данный момент я вижу две возможности решить эту проблему:

  1. Поместите невидимую кнопку в окно, которое слушает ярлык.
  2. Добавьте прослушиватель в приложении для ярлыка и свяжитесь с окном вручную.

Оба решения воспринимаются как злоупотребление системой. Первое решение может привести к неожиданному поведению (окно закрывается, если пользователь случайно нажимает на невидимую кнопку), а второе решение все равно будет издавать звуковой сигнал, поскольку окно не знает, что оно обрабатывает такой ярлык.

Есть ли элегантный способ решить эту проблему? Поскольку представление должно знать, что делать, решение с использованием только Interface Builder было бы идеальным. Если нет элегантного способа, есть ли способ улучшить упомянутые решения?

Заранее спасибо!

1 Ответ

2 голосов
/ 21 мая 2011

Если вы поместите элемент меню «Файл»> «Закрыть» в перо MainMenu, ярлык будет работать, даже если меню не отображается.

Если вы решите внедрить прослушиватель в приложении для ярлыкавместо этого вы можете избавиться от звукового сигнала, вернув ноль из блока, чтобы исходное событие не передавалось.

...