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
14
A
risposta
27
È necessario eseguire l'override -acceptsFirstResponder
per tornare YES
.
7
In Swift:
class MDView: NSView {
override var acceptsFirstResponder: Bool { return true }
}
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
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. –