我想知道Apple的"Pro"应用程序(Final Cut Pro X,Compressor等)如何始终显示"石墨"外观,即使用户在系统首选项上设置了"蓝色".
做一些调查我发现实现它的代码是在一个名为NSProApplicationMain的函数中.如果我创建一个新的Xcode项目,将它链接到ProKit.framework并交换NSProApplicationMain而不是NSApplicationMain,该应用程序将获得"石墨"外观.
谁知道是什么让这件事发生的?系统调用还是什么?
我终于想通了,它非常简单,不涉及使用私有API:
[[NSUserDefaults standardUserDefaults] setVolatileDomain:@{@"AppleAquaColorVariant": @6} forName:NSArgumentDomain];
Run Code Online (Sandbox Code Playgroud)
我通过拆解新iMovie附带的ProKit框架发现了它;)
编辑:上面的代码必须在UIApplicationMain之前运行.