Domanda

Ho seguenti requisiti:

  1. Ottenere azione associata NSButton utilizzando : - (SEL)action
  2. chiamerà l'azione ottenuto.

Possiamo eseguire 2 ° pt. Generalmente invochiamo un'azione come questo- [self abc:nil] solo pensando se possiamo invocare il metodo ottenuto dal 2 pt. in stesso modo!

È stato utile?

Soluzione

Prova:

SEL actionSelector = [button action];
[self performSelector: actionSelector withObject:nil];

Altri suggerimenti

L'azione è solo un selettore-il nome di un metodo. Qualsiasi numero di oggetti può avere un metodo con quel nome, e anche se solo una classe implementa il metodo, si può avere un qualsiasi numero di istanze di quella classe. Quindi, non si può semplicemente chiamare il nome di un metodo, perché non esprime quello oggetto risponderà ad esso. Avete bisogno di un oggetto che implementa tale metodo, ed è necessario inviare il messaggio con quel nome a tale oggetto.

L'oggetto più probabile che si desidera inviare il messaggio di azione a è l'obiettivo del tasto, in modo da ottenere che, allo stesso modo si ha la sua azione, e inviare il messaggio a quell'oggetto. O, meglio ancora, inviare il pulsante un messaggio performClick: ; se si vuole simulare l'utente fa clic sul pulsante, questo è il modo per farlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top