2012-07-05 16 views
12

In iPhone, ho vista in cui è presente UITextField. Quando faccio clic sul pulsante di cancellazione della tastiera UITextField, la tastiera scompare, non il testo in UITextField. In ipad samething funziona correttamente. Per favore suggeriscimi, cosa fare? Grazie in anticipo !!Quando si fa clic sulla tastiera del tasto chiaro di uitextfield non scompare il testo

+2

potete inserire il codice come gestisci il pulsante di cancellazione? –

+0

Verificare se il pulsante di cancellazione è bloccato da un'altra vista e quindi non ricevere gli eventi di tocco. – Christopher

risposta

5

In primo luogo, controllare tutti i blocchi di codice che legati alla tua UITextField (in particolare il codice yourTextField.hidden = YES;)

punti di rottura Put e analizzare ogni UITextField delegati che si implementato.

(textFieldDidEndEditing, textFieldShouldEndEditing, textFieldShouldReturn.etc.)

O

Implementare la textFieldShouldClear delegato e scrivere il codice qui per visibile e svuotare la UITextField

Per fare questo, è necessario impostare il clearButtonMode come sotto,

yourTextField.clearButtonMode = UITextFieldViewModeWhileEditing; 
yourTextField.delegate = self; 

//For active keyboard again 
[yourTextField becomeFirstResponder]; 

quindi implementare la textFieldShouldClear delegato

YourClass.h

@interface className : UIViewController <UITextFieldDelegate> 

YourClass.m

-(BOOL)textFieldShouldClear:(UITextField *)textField { 
    yourTextField.hidden = NO; 
    yourTextField.text = @""; 
    return YES; 
} 
+0

grazie per tutte le vostre risposte Ho avuto il problema dove sto facendo un errore. Ora ho fatto correttamente – Mad

8

Prova questo codice dopo si collega delegato del uitextifield

-(BOOL)textFieldShouldClear:(UITextField *)textField 
{ 
    return true; 
} 
3

Basta fare in modo U've dato questi due

editingTextField.delegate = self; 
editingTextField.clearButtonMode = UITextFieldViewModeWhileEditing; 

TextFieldShouldClear è necessaria solo se avete bisogno di fare alcune personalizzazioni :-)

State facendo qualche cosa in questo metodo?

Forse stai chiamando resignFirstResponder con questo metodo di delega, ecco perché la tastiera viene scaricata.

Si prega di passare attraverso i metodi delegati e controllare che cosa sta facendo esattamente.

29

Basta cancellare il campo, resignFirstResponder (se si desidera nascondere la tastiera) e ritorno NO/falso

Note: set Attributes inspector property of UITextField 

pulsante Clear -> Appare durante la modifica

so it will display 'X' button while editing in textfield. 

// Objective-C

-(BOOL)textFieldShouldClear:(UITextField *)textField 
{ 
    textField.text = @""; 
    [textField resignFirstResponder]; 
    return NO; 
} 

// Swift

func textFieldShouldClear(textField: UITextField) -> Bool { 
    textField.text = "" 
    textField.resignFirstResponder() 
    return false 
} 
2

Questo problema successo anche se avete

yourTextField.clearButtonMode = UITextFieldViewModeNever; 

Controllare questa linea e elimina o si modifica la modalità di visualizzazione ..

Problemi correlati