2012-04-05 9 views
14

ho fatto un costume NSView e hanno attuato il metodo keyDown:. Tuttavia, quando premo i tasti, il metodo non viene mai chiamato. Devo registrarmi per ricevere quegli eventi? Cordiali saluti, sto facendo un'applicazione basata su documenti e in grado di gestire questo codice da nessuna parte (non deve essere in questo punto di vista). Qual è il posto migliore per farlo in un'applicazione basata su documenti in modo tale che l'evento si verifichi in tutta l'intera applicazione?cacao: evento giù Tasto su NSView non sparare

risposta

27

È necessario eseguire l'override -acceptsFirstResponder per tornare YES.

+0

Ho lo stesso problema in quanto il richiedente (personalizzato NSView in un'applicazione basata su documenti), e acceptsFirstResponder solo overrided ma keyDown non è ancora attivato. Se hai qualche altro consiglio su cosa potrebbe essere, ti sarei eternamente grato! – chm

+1

Avete ragione di credere che il vostro punto di vista è first responder della finestra? È possibile impostare il 'initialFirstResponder' nel codice prima che la finestra è ordinato sullo schermo o collegarlo in IB. Altre volte, puoi usare '-makeFirstResponder:'. Inoltre, assicurati che la tua finestra possa diventare la chiave. –

7

In Swift:

class MDView: NSView { 
    override var acceptsFirstResponder: Bool { return true } 
} 
Problemi correlati