【问题标题】:Disabling subpixel antialiasing for Cocoa apps禁用 Cocoa 应用程序的亚像素抗锯齿
【发布时间】:2011-09-08 19:15:48
【问题描述】:

有没有办法为用 Cocoa 编写的单个应用程序禁用亚像素抗锯齿,以编程方式或其他方式。我可以设置全局用户默认值来设置级别,甚至可以为外部显示器强制启用它,但我需要一个针对每个应用程序的解决方案,我也可以将其分发给其他人。

【问题讨论】:

    标签: objective-c macos cocoa antialiasing subpixel


    【解决方案1】:

    NSUserDefaults works by domains,因此每个 NSUserDefault 都可以有一个系统范围的值、一个应用范围的值等等。如果您能够为此设置全局用户默认值,只需为您的应用设置相同的 NSUserDefaults。

    您使用的 NSUserDefaults 键是什么以及如何设置它?

    【讨论】:

    • 我确实尝试过,但它似乎在应用程序级别不起作用。对于我使用的全局域:defaults -currentHost write -globalDomain AppleFontSmoothing -int 1
    • @pryomoax:这是“on”的三种形式之一。 hints.macworld.com/article.php?story=20090828224632809 你想要-int 0。另外请注意,您不能为已经运行的应用程序设置默认值;它不会注意到更改,并且可能会在退出时破坏它。您必须退出它,然后设置默认值。
    • 在调用 NSApplicationMain 之前将其添加到您的主函数 (main.m):[[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInt:0] forKey:@"AppleFontSmoothing"];
    • 我会考虑使用NSUserDefaults' registerDefaults: 方法然后(而不是setValue:forKey:),它更适合不被用户本身覆盖但由应用程序强制的默认值
    猜你喜欢
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 2011-05-31
    • 2011-08-30
    • 2011-01-26
    相关资源
    最近更新 更多