Ответ 1
Попробуйте следующее:
textField.enabled = NO;
Есть ли простой способ отключить UITextField
в коде?
Мое приложение имеет 12 UITextField
, которые все включены по умолчанию, но когда изменения обнаружены в моем элементе управления сегментами, я хочу отключить некоторые из UITextField
в зависимости от того, какой сегмент выбирает пользователь.
Просто нужно знать, как отключить его или сделать его недоступным для редактирования?
Спасибо
Попробуйте следующее:
textField.enabled = NO;
Если вы также хотите указать, что текстовое поле отключено, вы должны добавить еще код:
если вы используете UITextBorderStyleRoundedRect, вы можете только выделять текст:
textField.enabled = NO;
textField.textColor = [UIColor lightGrayColor];
если вы используете какой-либо другой стиль, вы также можете затушевывать фон:
textField.enabled = NO;
textField.backgroundColor = [UIColor lightGrayColor];
Это было бы самым простым из всех, когда вы также много текстовых полей:
in viewDidLoad: (установите делегат только для текстовых полей, которые не должны редактироваться.
self.textfield.delegate=self;
и вставьте эту функцию делегата:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
return NO;
}
Вот оно!
Сделайте категорию в UIView.
добавьте следующие методы в эту категорию.
-(void)disable {
self.alpha = 0.5;
self.userInteractionEnabled = FALSE;
}
-(void)enable {
self.alpha = 1.0;
self.userInteractionEnabled = TRUE;
}
тогда просто вызовите
yourTextField.disable();
Собственно, вы можете использовать это для любого вида, который вы хотите.