我是OSX应用程序开发的新手,我想创建一个状态栏应用程序。
要在状态栏中显示NSStatusItem
,我首先将statusBar
项目放在ViewController
中。它确实有效。
//ApplicationDelegate.h
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (strong, nonatomic) NSStatusItem *statusBar;
@end
//ApplicationDelegate.m
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
}
- (void)applicationWillTerminate:(NSNotification *)aNotification {
// Insert code here to tear down your application
}
-(void)awakeFromNib{
self.statusBar = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
self.statusBar.title = @"T";
self.statusBar.highlightMode = YES;
}
@end
(当我使用awakeFromNib
代替storyboard
时,我不确定是否应该使用nib
方法。)
然而,当我阅读一些演示代码时,我发现我应该在ApplicationDelegate
类中这样做。
为什么呢?我认为这是 VIEW 的一部分,因为我遵循 MVC 规则。
答案 0 :(得分:1)
NSStatusItem与窗口或任何视图无关。即使没有附加视图,它也可以保留在NSStatusBar中。
因此,在ApplicationDelegate类中创建和初始化NSStatusItem是一个好习惯。