blob: 3541bc2e2c7bff995c5459fd4b7f01736c4c7476 [file] [log] [blame] [edit]
//
// 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 "EXTScope.h"
#import "RACDisposable.h"
#import "RACSignal.h"
#import "RACSubscriber.h"
#import "NSObject+RACDescription.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", [self rac_description]];
}
@end