macOS NSStatusBar + NSPopover
2017-01-20 本文已影响316人
ZhongXi
NSStatusBar : macOS系统的顶部导航栏item
@interface AppDelegate (){
NSStatusItem * statusItem;
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
/* 初始化 */
statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
/* 设置NSImage * /
[statusItem.button setImage:[NSImage imageNamed:@"statusItem"]];
/* 设置点击响应事件 */
statusItem.action = @selector(touchStatusItem:);
}
NSPopover : pop视图
@interface AppDelegate (){
NSPopover * popover;
}
-(void)touchStatusItem:(NSStatusBarButton *)button{
/* 初始化 */
popover = [[NSPopover alloc]init];
/* 设置动画 */
popover.behavior = NSPopoverBehaviorTransient;
/* 设置外观 */
popover.appearance = [NSAppearance appearanceNamed:NSAppearanceNameVibrantLight];
/* 设置展示视图 */
popover.contentViewController = [[PopViewController alloc]initWithNibName:@"PopViewController" bundle:nil];
/* 设置展示方位 */
[popover showRelativeToRect:button.bounds ofView:button preferredEdge:NSRectEdgeMaxY];
}
效果图
