Я делаю тестовое полноэкранное приложение, используя this guide. Тем не менее, я столкнулся с проблемой, когда хочу получить ключ ввода.Действия в режиме полного экрана
По какой-то причине кажется, что, когда вы устанавливаете NSPanel для захвата экрана, вы также теряете возможность получать события с клавишами вниз. Я попытался сделать триггер кнопки, когда пользователь набирает s
, который отлично работает на обычной панели, но, похоже, не работает, когда это изменение применяется .
Гарри Джордан: Я использую NSPanel, потому что это то, что он сказал, чтобы сделать в учебнике о полноэкранных приложениях. :) Лучше ли использовать NSWindow в этом случае? Не уверен, что мое приложение использует стандартный интерфейс, но я не думаю, что это так. Итак, в этом случае, просто я должен был бы подклассом -canBecomeKeyWindow и сделать оба метода -acceptsFirstResponder возвращать TRUE? – PF1
Основная причина использования NSPanel над обычным окном - обычно для внешнего вида (тонкая строка заголовка) и того, как он взаимодействует с событиями и другими окнами (т. Е. Плавающим). Поскольку по умолчанию настройка панели не становится окном приложений, если она специально не запрашивается подвью. Если вам нужно использовать NSPanel, вы можете преодолеть это значение по умолчанию, установив для панелей атрибутKeyOnlyIfNeeded на FALSE. Но короткий ответ, я бы рекомендовал вам использовать NSWindow для вашего примера. –
Гарри: Я очень подумываю об использовании NSWindow после прочтения вашего ответа, но я не знаю, будет ли он работать в этой ситуации. В любом случае, спасибо за вашу помощь. У меня теперь проблема исправлена. – PF1