我是Reactive Cocoa的新手。
我需要在空白被添加到UITextView
时触发内容,在用修剪版本替换文本视图文本之后。所以基本上我正在寻找某种完成事件。我想这是一个简单的事情,但我必须遗漏一些必要的东西......这就是我所拥有的:
RACSignal *whitespaceSignal = [self.field.rac_textSignal filter:^BOOL(NSString *input) {
return [self textContainsWhitespace:input];
}];
RAC(self.field, text) = [whitespaceSignal map:^id(NSString *input) {
// The stuff that needs to happen *after* the text field has
// got the new, trimmed value.. But here it gets triggered before
// the UITextView updates its value.
// [self respondToWhiteSpaceTrimmedEvent];
return [self trimWhitespace:input];
}];
我尝试了subscribeCompleted
,then
,completed
块的几种组合,但没有一种被调用。
如何检测self.field.text
何时更新其值以响应whitespaceSignal
,然后才触发我的副作用?
答案 0 :(得分:0)
你有没有订阅你创建的信号?你过滤/映射信号,但很明显你没有订阅信号所以我认为这就是原因。
[[self.field.rac_textSignal map:^id(NSString *input) {
// The stuff that needs to happen *after* the text field has
// got the new, trimmed value.. But here it gets triggered before
// the UITextView updates its value.
// [self respondToWhiteSpaceTrimmedEvent];
return [self trimWhitespace:input];
}] subscribeNext:^(id x) {
// Do some stuff after you replace whitespace ...
}];