2

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

subscribeCompletedthen、ブロックの組み合わせをいくつか試しましcompletedたが、どれも呼び出されませんでした。

self.field.textが に応答してその値を更新したことを検出しwhitespaceSignal、その後にのみ副作用をトリガーするにはどうすればよいですか?

4

1 に答える 1

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 ...
}];
于 2016-02-22T16:15:16.290 に答える