Как связать NSString с UITextView в Reactive Cocoa?

Я создаю социальный клиент iOS, и в представлении «compose» у меня есть UITextView где пользователь вводит текст. Я хотел бы использовать ReactiveCocoa для привязки text UITextView к NSString модели данных, чтобы следовать за MVVM.

Тем не менее, я сталкиваюсь с несколькими проблемами, связанными с одной RACObserve блок RACObserve не вызывается, когда текст UITextView изменяется программно.

(Пример: я изменяю текст в атрибутную строку, чтобы выделить #hashtags, @usernames и т. Д., Но эта атрибутная строка не создается, когда представление программно изменено.)

В моем предыдущем вопросе на эту тему я получил несколько полезных советов о том, что я должен привязать текстовое представление к модели – и наоборот – но мне непонятно, как мне это сделать с текущей версией Reactive Cocoa. Пример кода, который мне удалось найти, вызывает API, которые теперь устарели.

Каким образом можно связать rac_textSignal UITextView с NSString (и наоборот), чтобы я мог надежно вызывать блок кода при изменении содержимого UITextView (будь то программно или пользователем)?

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

Поэтому в таком случае вы должны написать что-то вроде:

 RAC(self.viewModel, text) = [RACSignal merge:@[ [self.textView rac_textSignal], RACObserve(self.textView, text), ]]; 

Таким образом, вы сразу набираете изменения как для UITextView text UITextView , так и для текстовых изменений, поступающих от ввода пользователем.

  • HTML-строка в UITextView AppStore
  • Ошибка с использованием специальной клавиатуры с UITextView
  • Как увеличить размер UITextView и высоту UIToolBar для приложения iPhone для iPhone?
  • Тупик при смене первого ответчика с uitextfield на uitextview
  • Почему мои письма идут вверх и вниз по мере ввода в UITextView?
  • ios - Как добавить список флажков в UITextView
  • ShouldChangeTextInRange не вызывается для UITextView
  • Как узнать, когда событие вставки запускается в UITextView?
  • Растущее представление ввода текста - быстрые примеры
  • Как проверить, пуст ли TextView?
  • Принуждение к UITextView
  • Interesting Posts

    Как использовать stringWithContentsOfFile: usedEncoding: error:

    prepareforsegue () не выполняется (быстрые / раскадровки)

    В iPhone iPhone 6 плюс есть запас на правой и левой стороне компонентов полной ширины

    iOS – Corebluetooth Подключение к периферийным устройствам иногда ничего не делает

    Google Plus Android GoogleAuthUtil.getToken () Эквивалент для iOS

    React-Native-Camera – Невозможно прочитать свойство «Аспект» для Undefined

    Какой контроль использовать для значений или значений?

    Определите, как долго приложение iOS было закрыто или было в фоновом режиме

    Применение UIVibrancyEffect к UILabel в UITableViewCell

    Как получить ICCID SIM-карты, которая находится на iPhone, используя приложение iOS?

    Как добавить изображение в электронное письмо, но не как вложение?

    ContainerView childViewControlllers отображает весь экран

    Изменение размера AVPlayer в ландшафтном режиме

    Каковы последствия памяти для шаблона sharedInstance при ARC?

    Как прослушивать пакеты UDP без запроса на сервер использовать GCDAsyncUdpSocket в iOS

    Давайте будем гением компьютера.