狀態(tài)欄樣式截圖
前言:我們常見的狀態(tài)欄快捷入口的按鈕,大多都是一個圖標(biāo),簡潔清晰。但是有些項目的需求,需要我們顯示比較復(fù)雜的視圖。下面就讓我們看看怎么設(shè)置想上圖上第二個樣式的復(fù)雜狀態(tài)欄視圖,有什么需要注意的地方。
#import "AppDelegate.h"
#import "NSView+LoadNib.h"
#import "CustomerView.h"
@interface AppDelegate ()
@property (strong,nonatomic) NSStatusItem *item;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
//獲取系統(tǒng)單例NSStatusBar對象
NSStatusBar *statusBar = [NSStatusBar systemStatusBar];
//設(shè)置動態(tài)寬度的NSStatusItem對象
NSStatusItem *item = [statusBar statusItemWithLength:NSVariableStatusItemLength];
//設(shè)置自定義的view
NSView *customerView = [NSView loadWithNibNamed:@"CustomeView" owner:self loadClass:[CustomeView class]];
[item setView: customerView];
//保存到屬性變量
self.item = item;
NSLog(@"%@",NSStringFromRect(item.view.bounds));
}
- (void)applicationWillTerminate:(NSNotification *)aNotification {
// Insert code here to tear down your application
NSStatusBar *statusBar = [NSStatusBar systemStatusBar];
//刪除item
[statusBar removeStatusItem:self.item];
}
注意:
1、創(chuàng)建NSStatusItem對象的時候,要用動態(tài)寬度的NSVariableStatusItemLength,如果是使用NSSquareStatusItemLength,那寬度是系統(tǒng)默認的,不能自適應(yīng)我們自定義view的寬度。
2、將自定義的customerView設(shè)置為NSStatusItem對象的view,就實現(xiàn)了狀態(tài)欄view的自定義。
3、NSStatusItem對象要設(shè)置為強指針,否則會立即釋放,只能看到閃一下就沒有了。
4、系統(tǒng)狀態(tài)欄的高度最大為22.
2017年08月08日追加補充
如何隱藏dock圖標(biāo)和菜單,只顯示狀態(tài)欄圖標(biāo):
在info.plist中添加Application is agent (UIElement)屬性,并且設(shè)置為YES。