Mac NSStatusBar

来源:互联网 发布:战千雄源码 编辑:程序博客网 时间:2024/05/18 02:40

先看NSStatusBar 效果图然后再展开对NSStatusBar的使用。
这里写图片描述

首先声明一个NSStatusItem。

@property (retain, strong) NSStatusItem *item;

然后对声明的item进行操作

#pragma mark -- NSStatusBar添加图标- (void)addIcon {    self.item = [[NSStatusBar systemStatusBar] statusItemWithLength:30];    NSImage *image = [NSImage imageNamed:@"menu_icon"];    [image setTemplate:YES];    self.item.image = image;    self.item.highlightMode = YES;}
#pragma mark - 添加item- (void)addItem {    NSMenu *menu = [[NSMenu alloc] initWithTitle:@"cloudscreen"];    [menu setMinimumWidth:200];    self.item.menu = menu;    // 打开vpn    NSMenuItem *disableItem = [[NSMenuItem alloc]initWithTitle:@"打开vpn" action:@selector(setAutoProxy) keyEquivalent:@""];    [disableItem setTarget:self];    [menu addItem:disableItem];    // 打开软件    NSMenuItem *showItem = [[NSMenuItem alloc]initWithTitle:@"打开软件" action:@selector(showClock) keyEquivalent:@""];    [showItem setTarget:self];    [menu addItem:showItem];    [menu addItem:[NSMenuItem separatorItem]];    // 退出登录    NSMenuItem *exitItem = [[NSMenuItem allocWithZone:[NSMenu menuZone]]initWithTitle:@"退出" action:@selector(exit) keyEquivalent:@""];    [exitItem setTarget:self];    [menu addItem:exitItem];}

item实现方法

#pragma mark -- 打开软件- (void)showClock {    [NSApp activateIgnoringOtherApps:YES];    [self.window makeKeyAndOrderFront:nil];    [self.window performSelector:@selector(orderFront:) withObject:nil afterDelay:0.1];    // 关于软件//    [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://tanhao.sinaapp.com"]];}#pragma mark -- Item代理方法- (void) setAutoProxy {    NSLog(@"setAutoProxy=====");    [[CSVPNManger sharedManger]connectVPN];}#pragma mark -- 退出- (void)exit {    [[CSVPNManger sharedManger]stopVpn];    NSLog(@"关闭vpn");    [[NSApplication sharedApplication] terminate:nil];}

之前也写了一个简单的NSStatusBar,当窗口关闭的时候NSStatusBar会自动灰掉。知道其原理之后就不会出现类似情况了。

0 0
原创粉丝点击