2013-11-01 1 views
0

У меня есть текстовое поле только для чтения. Я хочу, чтобы при изменении значения в это поле также устанавливалось другое текстовое поле.какое событие использовать для текстового поля только для чтения при изменении текста

Какое событие я должен использовать. попробовал с editChanged, но он не вызван. PLS помощи.

+0

как изменяет только для чтения текста? и если он меняется, то как вы можете назвать его как текст только для чтения? –

ответ

0

Если текстовое поле только для чтения, вы должны установить текст программно, правильно? В этом случае, когда вы устанавливаете текст, одновременно устанавливайте текст другого текстового поля.

Если я неправильно понял ваш вопрос, и пользователь редактирует текстовое поле, вы можете прослушивать изменения таким образом:

[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventValueChanged]; 

и обработки обратного вызова следующим образом:

- (void)textFieldDidChange:(UITextField *)textField 
{ 
    // Handle change 
} 
0

яблочной документации

textFieldShouldBeginEditing: просит делегата, если редактирование должно начаться в указанном текстовом поле.

  • (BOOL) textFieldShouldBeginEditing: (UITextField *) TextField

Параметры TextField - текстовое поле, для которого редактирования собирается начать.

Возвращаемое значение ДА, если сеанс редактирования должен быть инициирован; в противном случае НЕТ, чтобы запретить редактирование.

Обсуждение Когда пользователь выполняет действие, которое обычно инициирует сеанс редактирования, текстовое поле сначала вызывает этот метод до , если необходимо, чтобы редактирование действительно продолжалось. В большинстве случаев вы, , просто вернете YES из этого метода, чтобы разрешить редактирование.

Выполнение этого метода делегатом является необязательным. Если это нет, редактирование продолжается, как если бы этот метод вернул ДА.

Так использовать что-то вроде:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    BOOL editable; 
    if (textField == myReadOnlyTextField) { 
     editable = NO; 
    } else if (textField == myEditableTextField) { 
     editable = YES; 
    } else { 
     // editable = YES/NO/Other Logic 
    } 
    return editable; 
} 

Кроме того, для методов делегата, чтобы назвать ваш интерфейс должен соответствовать UITextfieldProtocol: добавьте в ваш файл .h <UITextFieldDelegate> так это выглядит следующим образом:

@interface ViewController : UIViewController <UITextFieldDelegate> 
0

Внесите этот метод делегата, если вы реализуете в ios.

- (BOOL)textField:(UITextField *)textField 
shouldChangeCharactersInRange{} 

Если вы реализуете в MacOS, то используйте ниже метод делегата: -

 -(void)controlTextDidChange 
Смежные вопросы