Подтвердить что ты не робот

Легкий способ отключить UITextField?

Есть ли простой способ отключить UITextField в коде?

Мое приложение имеет 12 UITextField, которые все включены по умолчанию, но когда изменения обнаружены в моем элементе управления сегментами, я хочу отключить некоторые из UITextField в зависимости от того, какой сегмент выбирает пользователь.

Просто нужно знать, как отключить его или сделать его недоступным для редактирования?

Спасибо

4b9b3361

Ответ 1

Попробуйте следующее:

textField.enabled = NO;

Ответ 2

Если вы также хотите указать, что текстовое поле отключено, вы должны добавить еще код:

если вы используете UITextBorderStyleRoundedRect, вы можете только выделять текст:

textField.enabled = NO;
textField.textColor = [UIColor lightGrayColor];

если вы используете какой-либо другой стиль, вы также можете затушевывать фон:

textField.enabled = NO;
textField.backgroundColor = [UIColor lightGrayColor];

Ответ 3

Это было бы самым простым из всех, когда вы также много текстовых полей:

in viewDidLoad: (установите делегат только для текстовых полей, которые не должны редактироваться.

self.textfield.delegate=self;

и вставьте эту функцию делегата:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
return NO;
}

Вот оно!

Ответ 4

Сделайте категорию в UIView.

добавьте следующие методы в эту категорию.

-(void)disable {
    self.alpha = 0.5;
    self.userInteractionEnabled = FALSE;
}

-(void)enable {
    self.alpha = 1.0;
    self.userInteractionEnabled = TRUE;
}

тогда просто вызовите

yourTextField.disable();

Собственно, вы можете использовать это для любого вида, который вы хотите.