Вопрос

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

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

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

Спасибо

Это было полезно?

Решение

В Objective-C:

textField.enabled = NO;

В Swift:

textField.isEnabled = false

Ссылка: Пользовательский контроль.включен

Другие советы

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

при использовании UITextBorderStyleRoundedRect вы можете выделять текст только серым цветом:

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

при использовании любого другого стиля вы также можете сделать фон серым:

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

Это было бы проще всего , если бы у вас тоже было несколько текстовых полей:

в 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();

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

Вы должны соответствовать UITextFieldDelegate и вернуться false в этом методе.Таким образом, текстовое поле по-прежнему можно выбрать, но оно недоступно для редактирования и вырезания

Код находится в Swift 4

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
  return false
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top