gpt4 book ai didi

objective-c - NSUserDefault 在 NSMenuItem 绑定(bind)中注册的默认初始显示

转载 作者:行者123 更新时间:2023-12-03 16:37:54 40 4
gpt4 key购买 nike

为了让绑定(bind)到 NSUserDefault 键的 NSMenuItem 显示注册的默认值,您需要执行的操作顺序是什么?

我正在注册默认值,但我的 NSMenuItems 未显示我启动应用程序时注册的默认值。

最佳答案

我花了早上的大部分时间来追寻这个问题,大多数答案似乎都是零碎的,所以我想分享一下。

1) 将您的菜单项绑定(bind)到:

  • 共享用户默认值
  • Controller 键:值
  • 模型 key 路径:keyName(在本例中为 Deduplication_Target)

2) 在 awakeFromNib 被调用之前注册你的默认值,我在 AppDelegate 的 + (void)initialize 方法中完成了它。 (applicationDidFinishLaunching、(id)init、applicationWillFinishLaunching,这些都不起作用)

+ (void)initialize {
[self setupDefaults];
}

3) 使用 NSNumbers 初始化 BOOL 值的默认字典,尽管有示例显示它们初始化为 NSStrings:

NSString *const KEY_DEDUPLICATION_TARGET = @"Deduplication_Target";
NSString *const KEY_DEDUPLICATION_SOURCE = @"Deduplication_Source";
+ (void)setupDefaults {
NSDictionary* userDefaultsValuesDict = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], KEY_DEDUPLICATION_TARGET,
[NSNumber numberWithBool:YES], KEY_DEDUPLICATION_SOURCE,
nil];

// set them in the standard user defaults
[[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsValuesDict];
}

这为我解决了问题。

引用:https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaBindings/Concepts/NSUserDefaultsController.html

关于objective-c - NSUserDefault 在 NSMenuItem 绑定(bind)中注册的默认初始显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12922161/

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