Check modifierFlags de NSEvent se um determinado modificador foi pressionado, mas nenhum outro

Acabei de experimentar oaddLocalMonitorForEventsMatchingMask:handler: no NSEvent e deparei-me com a seguinte pergunta: Como descobrir ses certos modificadores foram pressionados?

Um pequeno exemplo para definir essa pergunta no contexto: eu queria ouvir o atalho "⌘ + W". Portanto, eu escrevi o seguinte código:

[NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask handler:^(NSEvent *theEvent) {
    if ([theEvent modifierFlags] & NSCommandKeyMask && [theEvent keyCode] == 13) {
        [self.window performClose:self];
    }
    return theEvent;
}];

Isso funciona bem, no entanto, o atalho será acionado, mesmo que mais teclas modificadoras sejam pressionadas, por exemplo "⌃ + ⌘ + W" ou "⇧ + ⌃ + ⌥ + ⌘ + W". Existe uma maneira de contornar isso?

Uma solução simples seria verificar todas as outras teclas modificadoras e garantir que elas não sejam pressionadas. Isso parece entediante e propenso a erros - além de ser bastante feio, como é agora com o "&" unário. Além disso, você pode ter problemas se (por algum motivo) outra tecla modificadora for adicionada aos layouts de teclad

Como sempre, sou grato por quaisquer recomendaçõe

questionAnswers(2)

yourAnswerToTheQuestion