2013-03-22 13 views
8

come impostare il colore del bordo uitextfield e UITextView a livello di codice, quando si entra o si modifica in textfield e textview.come impostare uegextfield bordercolor nell'applicazione iphone

Ho usato questo codice, ma non cambia il colore del bordo per lo UITextView.

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    textField.layer.borderColor=[[UIColor cyanColor] CGColor]; 
} 
+0

È stato incluso quadro QuartzCore nella vostra costruire fasi? –

+0

@ste prescott sì ho incluso il framework quartzCore nelle mie fasi di compilazione. ma quando modifico il campo di testo non dovrebbe cambiare il colore del bordo. – raman

+0

@raman: Hai provato la mia risposta? – Bhavin

risposta

25

non dimenticare:#Import <QuartzCore/QuartzCore.h>

Codice lavoro:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    textField.layer.cornerRadius=8.0f; 
    textField.layer.masksToBounds=YES; 
    textField.layer.borderColor=[[UIColor redColor]CGColor]; 
    textField.layer.borderWidth= 1.0f; 
    return YES; 
} 
+1

grazie per la risposta. – raman

+6

In iOS 7 è necessario impostare una larghezza del bordo o il colore non ha effetto. – Micah

1
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

dichiara se l'utente è autorizzato a modificare un campo di testo. Cambiare il metodo di:

- (void)textFieldDidBeginEditing:(UITextField *)textField { 
    textField.layer.borderColor=[[UIColor cyanColor] CGColor]; 
} 
+0

io uso uiborderstyleline per uitextfield. quindi, come impostare il colore del bordo su uiborderstyleline di uitextfield. – raman

+0

grazie per la risposta – raman

1

Per dare Border e colori Di UITextField.

Aggiungi #import "QuartzCore/QuartzCore.h" lavoro fram.

textField.layer.borderColor = [UIColor lightGrayColor].CGColor; // set color as you want. 
textField.layer.borderWidth = 1.0; // set borderWidth as you want. 
+0

io uso uiborderstyleline per uitextfield. quindi, come impostare il colore del bordo su uiborderstyleline di uitextfield. – raman

+0

grazie per la risposta. – raman

0

Quando si modifica un campo di testo, esistono molti metodi che sembrano molto simili. Stai tentando di utilizzare -textFieldShouldBeginEditing:. Secondo la documentazione, textFieldShouldBeginEditing, "Chiede al delegato se la modifica dovrebbe iniziare nel campo di testo specificato." L'utilizzo è: "Quando l'utente esegue un'azione che normalmente avvia una sessione di modifica, il campo di testo chiama questo metodo per vedere se la modifica dovrebbe effettivamente procedere. Nella maggior parte dei casi, è sufficiente restituire YES da questo metodo per consentire la modifica a procedere." Questo non è quello che non vuoi fare.

Invece si dovrebbe usare -textFieldDidBeginEditing:. Questo metodo, "dice al delegato che la modifica è iniziata per il campo di testo specificato." ", Informa il delegato che il campo di testo specificato è diventato il primo risponditore.È possibile utilizzare questo metodo per aggiornare le informazioni sullo stato del delegato.Ad esempio, è possibile utilizzare questo metodo per mostrare le visualizzazioni di sovrapposizione che dovrebbero essere visibili durante la modifica."

Questo significa che il codice dovrebbe cambiare da:

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    textField.layer.borderColor=[[UIColor cyanColor] CGColor]; 
} 

a

-(BOOL)textFieldDidBeginEditing:(UITextField *)textField { 
    textField.layer.borderColor=[[UIColor cyanColor] CGColor]; 
} 

Si può leggere di più sui UITextFieldDelegate metodi nella documentazione a http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html

+0

io uso uiborderstyleline per uitextfield. quindi, come impostare il colore del bordo su uiborderstyleline di uitextfield. – raman

+0

grazie per la risposta. – raman

Problemi correlati