【问题标题】:Disable Xcode anti-aliasing text inside the code editor?在代码编辑器中禁用 Xcode 抗锯齿文本?
【发布时间】:2013-10-02 20:16:44
【问题描述】:

使用 Xcode 时,似乎没有办法将代码编辑器字体设置为锐利(即没有“字体平滑”)。尽管您可能会在 Preferences > Fonts & Colors 的预览区域看到什么,但在实际代码视图中,它始终是平滑/抗锯齿的。

有一些 older questions 解决了以前版本的 Xcode。他们建议使用defaults write com.apple.dt.Xcode <etc> 更改各种设置,但这些似乎不会影响我在 Mac OS X 10.8.5 上的 Xcode 5 中的代码视图。我正在使用具有一个 Retina 和一个非 Retina 屏幕的双显示器设置。

我尝试在系统偏好设置>常规>“在可用的情况下使用 LCD 字体平滑”中关闭字体平滑复选框,但这只会影响亚像素渲染...

更新 (2014-11-25):Mac OS X 10.10.1 和 Xcode 6.1.1 仍然存在该问题。这是使用这些终端命令后显示编辑器视图(平滑)和首选项窗口(未平滑)的屏幕截图:

defaults write com.apple.dt.Xcode NSFontDefaultScreenFontSubstitutionEnabled -bool YES
defaults write com.apple.dt.Xcode AppleAntiAliasingThreshold 16

【问题讨论】:

  • 添加了 Xcode 6 和 Yosemite 的答案。
  • 你能把原始的未压缩、未缩放的屏幕截图链接吗?并不是我不相信你,只是因为 SO 已经缩放了图像,它实际上对所有像素都应用了抗锯齿,所以你真的看不出区别!
  • 在我看来,SO 有原始图像。您可以在新的浏览器窗口中打开它。
  • 您是否尝试过像我这样的配置,带有一个 Retina 和一个非 Retina 显示器?仅使用非 Retina 显示屏对我来说效果很好。
  • 对不起,我没有 Retina 显示屏。

标签: xcode fonts xcode5 xcode6


【解决方案1】:

从 Xcode9.3 开始,可以在源代码编辑器中禁用文本抗锯齿功能,方法是运行以下命令并重新启动 Xcode:

defaults write com.apple.dt.Xcode SourceEditorDisableAntialiasing -bool YES

再次打开抗锯齿 -

defaults write com.apple.dt.Xcode SourceEditorDisableAntialiasing -bool NO

【讨论】:

  • 我在 High Sierra + Xcode 9.4.1 上确认(需要重新启动 Xcode)
  • @Trevor 谢谢,已更新:)
  • 不在莫哈韦沙漠中工作,在 Xcode 10 上工作在高山脉
  • @АндрейПервушин - 刚刚检查过 Mojave 和 Xcode 10 - WORKSFORME
  • Mojave 10.14.2 Mac book air 2014 Mac mini 2014 仍然没有。我有打开的错误报告,它被其他人重复。 “禁用字体抗锯齿不再起作用”状态为 [open]。所以我认为问题仍然存在
【解决方案2】:

Mike Ash 说他能够构建一个 Xcode 插件来告诉文本视图使用屏幕字体。看起来这很简单,虽然我还没有尝试过。

一般策略是(来自他的推文)是“修补 -[NSTextView drawRect:] 并执行 [[self layoutManager] setUsesScreenFonts: YES];。”

更新 (2015-08-14):这是来自 Ash 的解释性 blog post 和他的插件的 Xcode project。如果我将7FDF5C7A-131F-4ABB-9EDC-8C5F8F0B8A90 添加到DVTPlugInCompatibilityUUIDs,它适用于Xcode 6.4。我认为这个问题已经解决了!

更新(2016-06-20):截至Xcode 8,您无法使用 Xcode 插件,但此用户默认可以使用:

defaults write com.apple.dt.Xcode NSFontDefaultScreenFontSubstitutionEnabled -bool YES

【讨论】:

  • 谢谢。你赢得了我的赏金 ;-) 让我们希望他发表一份出版物,向我们展示如何使用它。另外,如果您设法以任何方式修复您的 xcode,请通过编辑您的答案让我们发布。如果我在你之前弄清楚,我也会这样做。
  • 我可以确认这也适用于 XCode 7。 0420B86A-AA43-4792-9ED0-6FE0F2B16A13 是 xcode 7 的新 uuid。
  • 在 7.1 中是 7265231C-39B4-402C-89E1-16167C4CC990。不得不重新编译插件。
  • 我无法让它与 Xcode 7.2 一起使用。我正在将正确的 UUID 添加到 DVTPlugInCompatibilityUUIDs 数组,但是即使在重建项目并将插件手动添加到正确的文件夹之后,当我重新启动 Xcode 时也没有任何反应。知道我错过了什么吗?
  • 无需修改即可在 Xcode 7.2 上为我工作。从c57e1 开始,不再需要手动提供DVTPlugInCompatibilityUUIDs。 (现在由project.pbxproj 中的PBXSourcesBuildPhase 部分处理。)
【解决方案3】:

如果您使用非视网膜显示器,请尝试

默认写入 com.apple.dt.Xcode NSFontDefaultScreenFontSubstitutionEnabled -bool YES
并重启 XCode。

更新:

也调用这个:

默认写入 com.apple.dt.Xcode AppleAntiAliasingThreshold 24

【讨论】:

  • 谢谢。不幸的是,这不适用于我的混合分辨率双显示器设置。
  • 谢谢;你是我的英雄!在 Mac Pro 上与 Mavericks 一起在 Xcode 5 中运行良好。
  • 不适用于装有 Xcode 5.0.2 和 OS X 10.9.1 的 MacBook Pro 2012(非 Retina)
  • 适用于非视网膜显示器 Dell P2416D (2560x1440),Xcode 7.3 on OS X 10.11 El Capitan。
【解决方案4】:

我不确定以前的版本,但是对于 Xcode 6.1 和 Yosemite (OS X 10.10),实际上需要两个命令来在 Xcode 中本地禁用抗锯齿。

首先,如前所述,您需要在终端控制台输入以下内容:

defaults write com.apple.dt.Xcode NSFontDefaultScreenFontSubstitutionEnabled -bool YES

那么,其次:

defaults write com.apple.dt.Xcode AppleAntiAliasingThreshold <some integer value>

这比在整个操作系统中禁用字体平滑或抗锯齿更可取。 它确实应该是在程序本身内部选中/取消选中的选项,但至少这是可行的。

【讨论】:

  • 感谢您的帮助,但这对我不起作用。我将字体设置为 Monaco 9。这些命令使字体在 Xcode 的字体首选项中看起来符合我的要求,但它们似乎不会影响主文本编辑器视图。
  • @MichaelTsai 嗨迈克尔,你能给我更多信息吗?你现在的配置是什么?您现在是在使用 Xcode 6.1 和 Yosemite,还是仍在使用与您的问题相同的配置?你能给我一个截图(通过按键盘上的 Cmd-Shift-3 键),同时在 Xcode 中显示前景中的字体和颜色窗口和它后面的编辑器,这样我就可以看到你在说什么?不用压缩,直接上传截图即可。
  • 我已经用这些附加信息更新了问题。
猜你喜欢
  • 2011-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-12
  • 2010-09-29
  • 2011-08-30
  • 2013-03-03
相关资源
最近更新 更多