Полноэкранный режим Key Down - PullRequest
0 голосов
/ 16 июня 2009

Я делаю тестовое полноэкранное приложение, используя это руководство . Тем не менее, я сталкиваюсь с проблемой, когда я хочу получить ключ ввода.

По какой-то причине кажется, что когда вы устанавливаете NSPanel на экран, вы также теряете возможность получать события нажатия клавиш. Я попытался сделать триггер кнопки, когда пользователь вводит s, что нормально работает на обычной панели, но, кажется, не работает, когда это изменение приложенное.

1 Ответ

0 голосов
/ 02 июля 2009

Возможно достичь. Убедитесь, что ваши подклассы NSPanel (есть причина, по которой вы не используете окно?) -canBecomeKeyWindow, и как панель, так и ее contentView '-acceptsFirstResponder методы возвращают TRUE.

Другой подход более низкого уровня, который вы можете попробовать, если разрабатываете приложение, использующее нестандартный пользовательский интерфейс (например, игру), заключается в создании подкласса NSApplication '- sendEvent метода. Моя выглядит так:

- (void)sendEvent:(NSEvent *)event
{
    id delegate = [self delegate];

    if(([event type] != NSAppKitDefined) && [delegate shouldHandleEvents] && [delegate respondsToSelector:@selector(handleEvent:)])
        [delegate handleEvent:event];
    else
        [super sendEvent:event];    
}
...