2015-11-29 3 views
0

Я попытался сделать местоположение автозаполнения текстовым классом по подклассу UITextField и использовать API автозаполнения Google Place. Это отлично работает, но из-за реализации у меня ошибка дизайна. Чтобы наблюдать, когда пользователь вводит текст, я устанавливаю UITextFieldDelegate в self в пользовательский подкласс и отслеживает изменения для введенного текста в textView:shouldChangeTextInRange:replacementText:. Это работает, но вот ошибка дизайна: если кто-то сейчас хочет проверить, что вводится в пользовательский подкласс, установив делегат на что-то новое, делегат моего класса больше не будет привязан к объекту самого класса. Теперь пользовательский класс бесполезен. Есть ли способ получить текст, поскольку он вводится без делегата, не позволяет делегату быть измененным или каким-либо другим способом исправить мою проблему?Получить текст UITextView без делегата

Несколько вариантов у меня есть, хотя о том, что могло бы работать, но в плохом смысле:

  • контролируйте то, что text свойства: Должно быть понятно, почему занято ожидание глупой идеи
  • Override делегировать и установить его в приватное: не уверен, что это будет работать, но если это так, класс больше не является надлежащим подклассом UITextField, и все методы делегата недоступны при реализации моего подкласса.
  • Обеспечить новый делегат для дальнейшего использования делегата: Позволяет кто-то, чтобы получить то же самое, как UITextFieldDelegate обеспечивает, но до сих пор путает документации и надлежащее выполнение UITextField

ответ

0

Делегаты в UIKit я обычно один к одному соединению. Это может вызвать описанную вами проблему.

Если вы хотите, чтобы несколько делегатов UITextField я получил класс из UITextField, например MYTextField, и добавьте метод addDelegate и removeDelegate, который поддерживает список делегатов. Прислал делегат MYTextField к себе и передал любой метод делегата всем слушателям в массиве делегатов.

В этом сообщении показан пример кода о том, как сохранить список из нескольких делегатов.

Delegation to multiple objects

Смежные вопросы