gpt4 book ai didi

objective-c - Cocoa-为什么我应该把我的 statusItem 放在 ApplicationDelegate 中?

转载 作者:行者123 更新时间:2023-12-03 17:10:01 25 4
gpt4 key购买 nike

我是 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

(这里我不确定当我使用 storyboard 而不是 nib 时是否应该使用 awakeFromNib 方法。 )

但是,当我阅读一些演示代码时,我发现我应该在 ApplicationDelegate 类中执行此操作。

为什么?我认为这是我的 VIEW 的一部分,因为我遵循 MVC 规则。

最佳答案

NSStatusItem 与窗口或任何 View 无关。即使没有附加 View ,它也可以保留在 NSStatusBar 中。

因此,在 ApplicationDelegate 类中创建并初始化 NSStatusItem 是一个很好的做法。

关于objective-c - Cocoa-为什么我应该把我的 statusItem 放在 ApplicationDelegate 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36124844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com