Undefined Title

Undefined Title

UIControlのステータスのトグル処理にReacativeCocoaを使う

1文字以上UITextViewに入っているときだけOKボタンを有効にする、なんてケースはよくある。 Cocoa Bindingsが使えればいいのだが、 あいにくiOSのCocoa Touchではまだサポートされていない。

ReactiveCocoaを使うとBlocksを使って楽に書ける。 rac_textSignalプロパティを使って次のように書くことができる。

#import <ReactiveCocoa.h>

UITextView _text = ...;
UIButton _ok = ...;

// Enable ok button when the length of text view content is more than zero.
[_text.rac_textSignal subscribeNext:^(NSString *x) {
    _ok.enabled = [x length] > 0;
}];