установить UITextField как недоступное для редактирования - Цель C - PullRequest
12 голосов
/ 18 июля 2010
    [Number.editable = NO];
    [Number resignFirstResponder];
    [Password.editable = NO];
    [Password resignFirstResponder];

Я получаю сообщение об ошибке

Запрос на членство "редактируемый" в чем-то, не являющемся структурой или объединением

: S

Спасибо

Ответы [ 4 ]

28 голосов
/ 18 июля 2010

Во-первых, [...] не нужны, если вы не отправляете сообщение.

Number.editable = NO;
[Number resignFirstResponder];
Password.editable = NO;
[Password resignFirstResponder];

Но это не причина ошибки. Свойство .editable определено только для UITextView, но не для UITextField. Вы должны установить свойство .enabled для UITextField (обратите внимание, что UITextField является UIControl).

Number.enabled = NO;
...
18 голосов
/ 18 июля 2010

Кроме того, вы можете использовать методы делегата.

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

Это бы сработало, я предпочитаю этот метод, чем установку textField.enabled = YES, когда есть вероятность, что возможность редактирования изменится во времяЖизненный цикл приложения.

6 голосов
/ 05 января 2015
textField.userInteractionEnabled = NO;

Надеюсь, это поможет ..

0 голосов
/ 05 января 2015

Возврат NO из shouldChangeCharactersInRange был бы лучшим выбором, потому что если текст длиннее ширины текстового поля, то решение, приведенное выше, создаст проблему, потому что пользователь не сможет увидеть весь текст (т. Е. Текст, скрытый за шириной текстового поля)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...