diff options
Diffstat (limited to 'Copy Mailto/AppDelegate.m')
-rw-r--r-- | Copy Mailto/AppDelegate.m | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Copy Mailto/AppDelegate.m b/Copy Mailto/AppDelegate.m new file mode 100644 index 0000000..752b716 --- /dev/null +++ b/Copy Mailto/AppDelegate.m @@ -0,0 +1,42 @@ +// +// AppDelegate.m +// CopyMailto +// +// Created by tw on 9/5/18. +// Copyright © 2018 tw. All rights reserved. +// + +#import "AppDelegate.h" + +const NSUInteger MAILTO_INDEX = 7; + +@implementation AppDelegate + +- (void)applicationWillFinishLaunching:(NSNotification *)aNotification { + [[NSAppleEventManager sharedAppleEventManager] + setEventHandler:self + andSelector:@selector(handleURLEvent:withReplyEvent:) + forEventClass:kInternetEventClass + andEventID:kAEGetURL]; +} + +- (void)handleURLEvent:(NSAppleEventDescriptor *)event + withReplyEvent: (NSAppleEventDescriptor *)replyEvent +{ + NSString *url = [[event paramDescriptorForKeyword:keyDirectObject] + stringValue]; + [_email_address setStringValue:[url substringFromIndex:MAILTO_INDEX]]; +} + +- (IBAction)copyEmailToClipboard:(id)sender +{ + NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; + [pasteboard clearContents]; + [pasteboard writeObjects: + [NSArray arrayWithObject: + [_email_address stringValue]]]; + + [NSApp terminate:self]; +} + +@end |