Отключить текст сглаживания Xcode внутри редактора кода?

При использовании Xcode, похоже, не существует способа, чтобы шрифты редактора кода были точными (т.е. без сглаживания шрифтов). Несмотря на то, что вы можете увидеть в области предварительного просмотра "Предпочтения" > "Шрифты и цвета", внутри фактического представления кода он всегда сглаживается/сглаживается.

Есть несколько старше questions, которые адресуют предыдущие версии Xcode. Они предлагают изменить различные настройки с помощью defaults write com.apple.dt.Xcode <etc>, но они, похоже, не влияют на просмотр кода для меня в Xcode 5 в Mac OS X 10.8.5. Я использую установку с двумя дисплеями с одним Retina и одним экраном без сетчатки.

Я попытался отключить флажок сглаживания шрифта в "Системные настройки" > "Основные" > "Использовать сглаживание шрифта ЖК-дисплея, где доступно", но это влияет только на рендеринг субпикселей...

Обновление (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

Ответ 1

Mike Ash говорит, что он смог построить плагин Xcode, чтобы сообщить текстовому виду использовать экранные шрифты. Похоже, это было бы просто сделать, хотя я еще не пробовал.

Общая стратегия была бы (из его твита) состоять в "patch -[NSTextView drawRect:] и do [[self layoutManager] setUsesScreenFonts: YES];."

Обновление (2015-08-14): Вот пояснительная запись в блоге из Ash и проект Xcode для своего плагина. Он работает для меня с Xcode 6.4, если я добавлю 7FDF5C7A-131F-4ABB-9EDC-8C5F8F0B8A90 в DVTPlugInCompatibilityUUIDs. Я считаю, что эта проблема решена!

Обновление (2016-06-20): с Xcode 8 вы не можете использовать плагины Xcode, но этот пользовательский по умолчанию работает:

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

Ответ 2

Если вы используете дисплей без сетчатки, попробуйте

defaults write com.apple.dt.Xcode NSFontDefaultScreenFontSubstitutionEnabled -bool YES
и перезапустите XCode.

UPDATE:

Также вызывайте это:

defaults write com.apple.dt.Xcode AppleAntiAliasingThreshold 24

Ответ 3

Я не уверен в предыдущих версиях, но с 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>

Это предпочтительнее отключить сглаживание шрифтов или сглаживание в течение всей операционной системы. Это действительно действительно возможность проверить/снять флажок внутри самой программы, но по крайней мере это работает.