как сделать так, чтобы изменения текстового поля появлялись в двух разных представлениях? - PullRequest
1 голос
/ 05 апреля 2011

У меня есть класс, где я использовал метод делегата текстового поля "shouldChangeCharactersInRange".Если пользователь вводит что-то в текстовое поле в одном представлении, я хочу, чтобы эти изменения отображались в текстовом поле в другом представлении.Прямо сейчас, у меня есть два xib-файла с владельцем одного файла, и я устанавливаю соединение (в IB) в каждом xib-файле с моим текстовым полем (которое я объявил как IBOutlet).Это приложение для Ipad, поэтому я переключаюсь между представлениями, когда пользователь поворачивает устройство.Это еще не работает, так что я что-то упускаюМожет кто-нибудь, пожалуйста, помогите мне!благодарю вас!Если этот вопрос неясен, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 05 апреля 2011

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

- (BOOL)textField: (UITextField *)textField shouldChangeCharactersInRange: (NSRange)range replacementString: (NSString *)string
{
    if (textField.text.length >= MAX_LENGTH && range.length == 0)
    {
        return NO; 
    }
    else
    {
        return YES;
    }
}

Вы хотите добавить что-то вроде:

- (BOOL)textField: (UITextField *)textField shouldChangeCharactersInRange: (NSRange)range replacementString: (NSString *)string
{
    if (textField.text.length >= MAX_LENGTH && range.length == 0)
    {
        return NO; 
    }
    else
    {   
        [myFirstTextField setText:string];
        [mySecondTextField setText:string];
        return YES;
    }
}

И если вы установите оба textFields для делегирования этой единственной функции, вы недаже не нужно заботиться о том, кто вам там делегирован.Действие, которое вы хотите предпринять, одинаково, независимо от того, кто в него ввел текст.

...