我正在实现一个聊天UI,并使用Reactive
Cocoa根据用户的类型调整聊天气泡的大小.目前,我正在基于textview的rac_textSignal更新UI的布局.一切都很好 – 除了一点:当用户发送消息时,我以编程方式清除文本字段:
_inputTextView.text = @"";
…但是textview的rac_textSignal没有激活. I hear this is a feature with ReactiveCocoa – 但是建立这个的正确方法是什么?我是否需要拥有一个持有currentTypedString的NSString,并在该字符串更新时驱动UI更改?
解决方法
是的,这是正确的.
在MVVM下,视图模型应该被视为UI数据和事件的规范来源(这会带来一系列重要的好处,比如更好的可测试性).您将已键入的NSString存储在视图模型上,然后将其绑定到UI.
使用MVC,您必须使用控制器或模型,但原则是相同的:将视图视为瞬态数据并在其他地方执行重要操作.