Domanda

Ho una casella di testo nella mia app per iPhone, quando la tocchi nel simulatore, la tastiera si apre. Ma non c'è modo di liberarsene. Altre pagine web offrono soluzioni, senza spiegare perché dovrebbero funzionare e non funzionano per me. Uno dice che delegare la casella di testo alla tua uiview, quindi chiama resignfirstresponder sull'oggetto, ma non viene mai chiamato. Eventuali suggerimenti? Qualcuno può spiegare cosa sta realmente succedendo? Posso capirlo da solo se sapessi quale fosse il paradigma del design ...

Forse dovrei semplicemente mettere un " go " quindi ho qualcosa per distogliere l'attenzione dal campo di testo?

È stato utile?

Soluzione

Un modo per farlo è impostare un oggetto come delegato nel campo di testo e implementarlo

- (BOOL)textFieldShouldReturn:(UITextField *)textField

in cui chiami [textField resignFirstResponder]

Questo farà scomparire la tastiera quando premono il pulsante return / go / done (qualunque sia il tasto in basso a destra impostato).

Vedi UITextField> per maggiori informazioni.

Altri suggerimenti

Per chiudere la tastiera puoi usare TextField Delegate.

Per usare questo segui questi passaggi ...
1. In viewController. h aggiungi la dichiarazione del delegato in questo modo:     

@interface ViewController : UIViewController <UITextFieldDelegate> {
    }
2. Nel tuo viewController. m chiama questo metodo:     
- (BOOL)textFieldShouldReturn:(UITextField *)textField
3. Quindi scrivere un codice come questo:     
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;
    }
4. Il passaggio finale consiste nell'impostare il delegato di textField:     
- (void)viewDidLoad {
        [super viewDidLoad];
        self.textField.delegate = self;
    }

- (BOOL) textFieldShouldReturn: (UITextField *) textField nel tuo delegato viene chiamato quando viene premuto il pulsante di ritorno.

Si desidera chiamare [textField resignFirstResponder] e quindi restituire YES . Questo dovrebbe fare il trucco. Assicurarsi inoltre che il delegato sia impostato. In caso di dubbi, aggiungere un punto di interruzione o NSLog e verificare.

scroll top