bry*_*ark 1 nsstring uitextview ios reactive-cocoa
我正在构建一个iOS社交客户端,在"撰写"视图中,我有一个UITextView用户输入文本的位置.我想使用ReactiveCocoa绑定text的UITextView对NSString数据模型的,遵循MVVM.
但是,我遇到了几个问题,都与一件事有关:RACObserve当以UITextView编程方式更改文本时,不会调用块.
(举个例子:我更改文本成属性串突出#哈希标签,@使用者名称等,但是当视图以编程方式改变了这种属性串还没有生成.)
在我以前的关于这个主题的问题,我得到了我应该绑定的TextView到模型中一些有用的建议-反之亦然-但我应该如何与活性可可的当前版本做这我不清楚.我设法找到的示例代码调用了现在已弃用的API.
什么是绑定的适当方法rac_textSignal的UITextView一个NSString(反之亦然),这样当的内容,我可以可靠地调用的代码块UITextView被改变(无论是编程或由用户)?
答案取决于视图模型text和UITextViews 之间的绑定是否text需要双向.一般来说,我们试图远离双向绑定,因为它们变得更难以推理.理想情况下,只有一个方向驱动数据.
那么在这种情况下,你会写下这样的东西:
RAC(self.viewModel, text) = [RACSignal merge:@[
[self.textView rac_textSignal],
RACObserve(self.textView, text),
]];
Run Code Online (Sandbox Code Playgroud)
这样你就可以直接接受对UITextViews text属性的更改,以及来自用户输入的文本更改.
| 归档时间: |
|
| 查看次数: |
1411 次 |
| 最近记录: |