Skip to content

Instantly share code, notes, and snippets.

@joshaber
Created December 28, 2012 02:49
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joshaber/4394046 to your computer and use it in GitHub Desktop.
Save joshaber/4394046 to your computer and use it in GitHub Desktop.
NSEvent+RACSignals
@implementation NSEvent (RACSignals)
+ (id<RACSignal>)rac_signalForEventsMatchingMask:(NSEventMask)eventMask {
return [RACSignal createSignal:^(id<RACSubscriber> subscriber) {
id monitor = [NSEvent addLocalMonitorForEventsMatchingMask:eventMask handler:^(NSEvent *event) {
[subscriber sendNext:event];
return event;
}];
return [RACDisposable disposableWithBlock:^{
[NSEvent removeMonitor:monitor];
}];
}];
}
+ (id<RACSignal>)rac_mouseLocation {
return [[[NSEvent
rac_signalForEventsMatchingMask:NSMouseMovedMask]
map:^(id _) {
return [NSValue valueWithPoint:NSEvent.mouseLocation];
}]
startWith:[NSValue valueWithPoint:NSEvent.mouseLocation]];
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment