Экранная заставка macOS Взаимодействие с клавиатурой - PullRequest
0 голосов
/ 12 апреля 2019

Я сделал пользовательскую заставку macOS (из шаблона Xcode). Он устанавливается и работает нормально, за исключением случаев, когда я хочу закрыть Заставку. Я могу отклонить его только при нажатии клавиши-модификатора клавиатуры, такой как Ctrl, без стандартных клавиш, таких как пробел и т. Д.

У меня возникло ощущение, что NSView, который отображает мой контент, поглощает стандартные ключевые события и поэтому не закрывает экранную заставку. У кого-нибудь есть идеи по решению этой проблемы?

1 Ответ

0 голосов
/ 12 апреля 2019

Я понял, что происходит.У меня был SceneKit вид, который ничего не делал с ключевыми событиями.Решением было вручную передать его в суперпредставление, которое на самом деле является ScreenSaverView.

- (void)keyDown:(NSEvent *)event
{
    [self.view.superview keyDown:event];
}

- (void)keyUp:(NSEvent *)event
{
    [self.view.superview keyUp:event];
}
...