自分用時計Mac App作った
Obsician Menu Barでmenu barを黒くしていると、時計の時刻が見づらくなりまして。 それで、時計だけを表示するMacAppを作ってみました。
この佇まい。
Quitのみ。
Mac Appはあまり作った事がないのですが、UI以外のところはiOSとほとんど同じ感じですね。
ここを参考にしました。
#import "JOGAppDelegate.h" NSStatusItem *statusItem; NSMenu *theMenu; NSDateFormatter *formatter; NSDictionary *attrDict; @implementation JOGAppDelegate - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { NSMenuItem *tItem = nil; theMenu = [[NSMenu alloc] initWithTitle:@""]; [theMenu setAutoenablesItems:NO]; tItem = [theMenu addItemWithTitle:@"Quit" action:@selector(terminate:) keyEquivalent:@"q"]; [tItem setKeyEquivalentModifierMask:NSCommandKeyMask]; NSStatusBar *statusBar = [NSStatusBar systemStatusBar]; statusItem = [statusBar statusItemWithLength:NSVariableStatusItemLength]; [statusItem setHighlightMode:YES]; [statusItem setMenu:theMenu]; formatter = [NSDateFormatter new]; [formatter setLocale:[NSLocale currentLocale]]; [formatter setDateStyle:NSDateFormatterNoStyle]; [formatter setTimeStyle:NSDateFormatterShortStyle]; attrDict = @{ NSFontAttributeName : [NSFont boldSystemFontOfSize:12], NSForegroundColorAttributeName : [NSColor lightGrayColor] }; [self setNowStr]; [NSTimer scheduledTimerWithTimeInterval:3.0f target:[NSBlockOperation blockOperationWithBlock:^{ [self setNowStr]; }] selector:@selector(main) userInfo:nil repeats:YES]; } - (void)setNowStr { NSAttributedString *attrStr = [[NSAttributedString alloc]initWithString:[formatter stringFromDate:[NSDate date]] attributes:attrDict]; [statusItem setAttributedTitle:attrStr]; } @end
.app も後で公開してみよう。
あとはユーザが画像を入れたらmenu bar上でパラパラ漫画ができるのとか作ってみようかな。