2013-03-22 3 views
8

Как установить uitextfield и UITextView цвет границы программно, когда мы вводим или редактируем текстовое поле и текстовое изображение.Как установить uitextfield bordercolor в приложении iphone

Я использовал этот код, но не менял цвет рамки для UITextView.

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

Включили ли вы рамки QuartzCore в ваш строить фазы? –

+0

@ste prescott Да, я включил кварцевую структуру в мои фазы сборки. но когда я редактирую текстовое поле, он не должен менять цвет рамки. – raman

+0

@raman: Вы пробовали мой ответ? – Bhavin

ответ

25

Не забывайте:#Import <QuartzCore/QuartzCore.h>

Рабочий код:

- (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

Благодарим вас за ответ. – raman

+6

В iOS 7 вы должны установить ширину границы или цвет не вступает в силу. – Micah

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

заявляет, если пользователю разрешено редактировать текстовое поле. Измените метод:

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

Я использую uiborderstyleline для uitextfield. поэтому, как установить цвет границы для uiborderstyleline uitextfield. – raman

+0

Благодарим вас за ответ – raman

1

Для дать Border и цвет Из UITextField.

Добавить #import "QuartzCore/QuartzCore.h" Работы с рамкой.

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

Я использую uiborderstyleline для uitextfield. поэтому, как установить цвет границы для uiborderstyleline uitextfield. – raman

+0

Благодарим вас за ответ. – raman

0

Когда вы редактируете текстовое поле, существует множество методов, которые кажутся действительно похожими. Вы пытаетесь использовать -textFieldShouldBeginEditing:. Согласно документации, textFieldShouldBeginEditing, «просит делегата, если редактирование должно начинаться в указанном текстовом поле». Использование: «Когда пользователь выполняет действие, которое обычно инициирует сеанс редактирования, текстовое поле сначала вызывает этот метод, чтобы увидеть, действительно ли будет выполняться редактирование. В большинстве случаев вы просто возвращаете YES из этого метода, чтобы разрешить редактирование продолжить «. Это не то, что вы не должны делать.

Вместо этого вы должны использовать -textFieldDidBeginEditing:. Этот метод «Сообщает делегату, что редактирование началось для указанного текстового поля». Он «уведомляет делегата о том, что указанное текстовое поле только что стало первым ответчиком. Этот метод можно использовать для обновления информации о состоянии вашего делегата. Например, вы можете использовать этот метод для отображения оверлейных представлений, которые должны быть видны во время редактирования».

Это означает, что ваш код должен измениться от:

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

в

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

Вы можете прочитать больше о UITextFieldDelegate методов в документации на http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html

+0

Я использую uiborderstyleline для uitextfield. поэтому, как установить цвет границы для uiborderstyleline uitextfield. – raman

+0

Благодарим вас за ответ. – raman

Смежные вопросы