posso modificare il colore di clearButtonMode su un campo di testo?UITextField clearButtonMode color
mostra un x che è di colore grigio scuro per eliminare il textField,
ma Posso mostrare questo tasto con il colore bianco?
grazie
posso modificare il colore di clearButtonMode su un campo di testo?UITextField clearButtonMode color
mostra un x che è di colore grigio scuro per eliminare il textField,
ma Posso mostrare questo tasto con il colore bianco?
grazie
Avrai bisogno di creare la propria immagine del pulsante chiaro in questo caso. Suggerirei di prendere uno screenshot del pulsante Cancella e di modificarlo in Photoshop.
È possibile scattare quell'immagine e creare un UIButton con le dimensioni dell'immagine. Da lì puoi impostarlo come rightView di UITextField. In questo modo:
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"clear_button.png"] forState:UIControlStateNormal];
[button setFrame:CGRectMake(0.0f, 0.0f, 15.0f, 15.0f)]; // Required for iOS7
theTextField.rightView = button;
theTextField.rightViewMode = UITextFieldViewModeWhileEditing;
ho scritto che, senza il controllo della sintassi e cosa non così ti consigliamo di provarlo prima di eseguirlo. Dovrai anche sostituire clear_button.png con qualunque sia il nome dell'immagine.
Avrai anche bisogno di scrivere il tuo metodo per cancellare il campo di testo.
un modo più pulito è quello di implementare una categoria a UITextField con questo metodo:
- (void)modifyClearButtonWithImage:(UIImage *)image {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:image forState:UIControlStateNormal];
[button setFrame:CGRectMake(0.0f, 0.0f, 15.0f, 15.0f)];
[button addTarget:self action:@selector(clear:) forControlEvents:UIControlEventTouchUpInside];
self.rightView = button;
self.rightViewMode = UITextFieldViewModeWhileEditing;
}
-(IBAction)clear:(id)sender{
self.text = @"";
}
Penso che dovresti usare il parametro 'image' invece del creato" clear-button "UIImage. – ingaham
versione Swift:
extension UITextField {
func modifyClearButtonWithImage(image : UIImage) {
let clearButton = UIButton(type: .Custom)
clearButton.setImage(image, forState: .Normal)
clearButton.frame = CGRectMake(0, 0, 40, 40)
clearButton.contentMode = .ScaleAspectFit
clearButton.addTarget(self, action: #selector(UITextField.clear(_:)), forControlEvents: .TouchUpInside)
self.rightView = clearButton
self.rightViewMode = .WhileEditing
}
func clear(sender : AnyObject) {
self.text = ""
}
}
Si prega di non aggiungere la [stessa risposta] (http://stackoverflow.com/a/39831522/5292302) a più domande. Rispondi al migliore e contrassegna il resto come duplicato. Vedi [È accettabile aggiungere una risposta duplicata a diverse domande?] (Http://meta.stackexchange.com/questions/104227/is-it-acceptable-to-add-a-duplica te-answer-to- diverse-domande) –
Al momento si sta configurando l'textField, uso:
let clearButton : UIButton = textField.value(forKey: "_clearButton") as! UIButton
let image = UIImage(named: "ClearWhite")
clearButton.setImage(image, for: .normal)
clearButton.backgroundColor = UIColor.clear
Questo non funziona più con iOS 7. Invece è necessario creare il pulsante con una cornice. – Legoless
Apple dovrebbe davvero fornire un modo elegante per far sì che ciò accada – vzm