it-swarm.com.ru

установить UITextField как недоступное для редактирования - Цель C

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

Я получаю ошибку

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

: S

Спасибо

12
user393273

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

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

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

Number.enabled = NO;
...
28
kennytm

Также вы можете использовать методы делегата.

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

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

18
makdad
textField.userInteractionEnabled = NO;

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

6
Henit Nathwani

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

0
Rajinder Paul