| 123456789101112131415161718192021222324252627282930313233343536373839 |
- //
- // NSControl+RACTextSignalSupport.m
- // ReactiveCocoa
- //
- // Created by Justin Spahr-Summers on 2013-03-08.
- // Copyright (c) 2013 GitHub, Inc. All rights reserved.
- //
- #import "NSControl+RACTextSignalSupport.h"
- #import <ReactiveCocoa/EXTScope.h>
- #import "NSObject+RACDescription.h"
- #import "RACDisposable.h"
- #import "RACSignal.h"
- #import "RACSubscriber.h"
- @implementation NSControl (RACTextSignalSupport)
- - (RACSignal *)rac_textSignal {
- @weakify(self);
- return [[[[RACSignal
- createSignal:^(id<RACSubscriber> subscriber) {
- @strongify(self);
- id observer = [NSNotificationCenter.defaultCenter addObserverForName:NSControlTextDidChangeNotification object:self queue:nil usingBlock:^(NSNotification *note) {
- [subscriber sendNext:note.object];
- }];
- return [RACDisposable disposableWithBlock:^{
- [NSNotificationCenter.defaultCenter removeObserver:observer];
- }];
- }]
- map:^(NSControl *control) {
- return [control.stringValue copy];
- }]
- startWith:[self.stringValue copy]]
- setNameWithFormat:@"%@ -rac_textSignal", RACDescription(self)];
- }
- @end
|