gpt4 book ai didi

objective-c - 从其他类设置 NSStatusBar 标题?

转载 作者:行者123 更新时间:2023-12-03 18:02:30 26 4
gpt4 key购买 nike

我正在尝试从不同的类(我的首选项类)更改 NSStatusBar 中的标题。

在我的 ManagerClass.m & .h 中我已经声明了

- (NSStatusItem *)statusItem { return statusItem; }

然后我将 ManagerClass.h 导入到我的preferences.m

然后在preferences.m中我尝试执行:

ManagerClass *someInstanceToIt = [[ManagerClass alloc] init]; 
[(NSStatusItem *)[someInstanceToIt statusItem] setTitle:@"New Title"];

但是,如果我使用 if 我可以看到 statusItem 为空进行测试,则 statusItem 似乎永远不会传递到preferences.m 文件。

有什么想法吗?我完全陷入困境

最佳答案

您在使用[[ManagerClass alloc] init]时创建了一个新实例。您可能需要一个之前创建的对象,而不是一个新对象。

有以下方法可以解决您的问题:- 第一个解决方案是传递创建的 ManagerClass 实例并将其传递给首选项 Controller 。但在这种情况下,您必须不断地将 ManagerClass 实例保留在变量中,这样您就不会丢失它。- 另一种方法是实现单例设计。这意味着您可以选择在整个应用程序中拥有一个共享对象。下面是一个示例:

@implementation aClass
- (id)init {
self = [super init];
if(self != nil) {
}
return self;
}

+ (id)sharedInstance { // note the + for a class method
static id shared = nil;
if(shared == nil) {
shared = [[self alloc] init];
}
return shared;
}
@end

现在您可以调用此代码以在每次调用时接收相同的对象:

aClass *sharedObject = [aClass sharedInstance];

希望对你有帮助ief2

关于objective-c - 从其他类设置 NSStatusBar 标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4913632/

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