Когда вы редактируете текстовое поле, существует множество методов, которые кажутся действительно похожими. Вы пытаетесь использовать -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
Включили ли вы рамки QuartzCore в ваш строить фазы? –
@ste prescott Да, я включил кварцевую структуру в мои фазы сборки. но когда я редактирую текстовое поле, он не должен менять цвет рамки. – raman
@raman: Вы пробовали мой ответ? – Bhavin