ReactiveCocoa`rac_textSignal`地图已完成事件

时间:2016-02-09 17:38:34

标签: ios objective-c uitextview reactive-cocoa racsignal

我是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];
}];

我尝试了subscribeCompletedthencompleted块的几种组合,但没有一种被调用。

如何检测self.field.text何时更新其值以响应whitespaceSignal,然后才触发我的副作用?

1 个答案:

答案 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 ...
}];