相关疑难解决方法(0)

如何检测OS X是否处于黑暗模式?

我的cocoa应用程序在新的OS X"黑暗模式"下运行时必须改变其行为.

有没有办法检测OS X样式是否设置为此模式?

macos cocoa themes

38
推荐指数
6
解决办法
1万
查看次数

检测NSUserDefaults上的更改

我正在开发一个带有最新SDK的iOS应用程序.

我想知道什么时候NSUserDefaults改变它的价值.

我发现了这个,但它特定于macOS:

[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self
    forKeyPath:[@"values." stringByAppendingString: @"MyPreference"]
    options:NSKeyValueObservingOptionNew
    context:NULL];
Run Code Online (Sandbox Code Playgroud)

我怎么能在iOS上这样做?

objective-c nsuserdefaults ios

24
推荐指数
2
解决办法
2万
查看次数

NSUserDefaults和KVO问题

我在我的应用程序中使用NSUserDefaults,我希望在更改特定值时收到通知.为此,我在viewDidLoad中添加了以下行:

NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
[settings synchronize];
[settings addObserver:self forKeyPath:@"pref_server" options:NSKeyValueObservingOptionNew context:NULL];
Run Code Online (Sandbox Code Playgroud)

以及要通知的方法:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{

    NSLog(@"Change");

    NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
    if (object == settings && [keyPath isEqualToString:@"pref_server"])
    {
        NSLog(@"Server did change");
    }

}
Run Code Online (Sandbox Code Playgroud)

不幸的是,后者永远不会被调用... @"pref_server"是我在Root.plist中设置的项目标识符,在Settings.bundle中.我究竟做错了什么?

ios

9
推荐指数
2
解决办法
7249
查看次数

标签 统计

ios ×2

cocoa ×1

macos ×1

nsuserdefaults ×1

objective-c ×1

themes ×1