Начиная с Xcode 8, Apple спрятала курсор i-beam где-то там, где его никто не нашел. Вместо этого многие решили использовать Mousecape для изменения i-beam во всех программах. Я предпочитаю этот метод, так как он исправляет i-beam в других программах, которые поддерживают темные темы, таких как редактор Komodo. Mousecape должен работать во всех версиях Xcode, и обновление Xcode не сломает курсор. В настоящее время я использую Mousecape в macOS 10.13.2, Xcode 9.1. Вот шаги:
- Скачать Mousecape с здесь
- Загрузите «мыс» с измененным курсором i-beam, таким как Ярко-белый или Серая тень
- Выполнить
Mousecape.app
- Из строки меню Mousecape:
File > Import Cape > "cape" file downloaded above
- Щелкните правой кнопкой мыши импортированный «мыс» и выберите
Apply
- Проверьте, работает ли новый курсор в Xcode. Когда все выполнено, вы можете навести курсор на каждую перезагрузку, выполнив команду из строки меню Mousecape:
Mousecape > Install Helper Tool
- Установка обновлений macOS (например, с 10.13.1 по 10.13.2) может потребовать повторения шагов 5 и 6.
Оригинальный ответ:
Xcode НЕ использует общесистемный курсор i-beam, поскольку все, о ком я говорил, говорили об этом, как если бы это был известный факт. Если бы я не поверил этим людям, я бы не потратил два дня, чтобы понять, как изменить системный курсор i-beam, редактируя CoreGraphics , только чтобы обнаружить, что ibeam Xcode не меняется.
Кстати, я также наткнулся на , как редактировать другие системные курсоры .
Я провел большую часть выходных, выясняя это, но курсор i-beam в Xcode МОЖЕТ быть отредактирован. Это просто файл TIFF в следующем месте для Xcode 3.2.6 (и более ранний, я полагаю, но не проверял):
/ Разработчик / Library / PrivateFrameworks / XcodeEdit.framework / Версии / A / Ресурсы / TIbeam.tiff
Xcode 4.1 имеет тот же файл, но он не влияет на i-beam в главном редакторе (я предполагаю, что он где-то используется, но, возможно, нет). Вместо этого главный редактор в Xcode 4.1 использует этот файл:
/ Разработчик / Library / PrivateFrameworks / DVTKit.framework / Версии / A / Ресурсы / DVTIbeamCursor.tiff
Файлы ibeam снова переместились в Xcode 4.4:
/ Применения / Xcode.app / Содержание / OtherFrameworks / XcodeEdit.framework / Версии / A / Ресурсы / TIbeam.tiff
/ Применения / Xcode.app / Содержание / SharedFrameworks / DVTKit.framework / Версии / A / Ресурсы / DVTIbeamCursor.png
/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/DVTIbeamCursor@2x.png
Редактирования DVTIbeamCursor.png было достаточно, чтобы изменить i-beam в главном редакторе моей системы. На другом сайте кто-то сообщил, что DVTIbeamCursor@2x.png будет использоваться на дисплее сетчатки или других новых дисплеях Apple с высоким разрешением, таких как Thunderbolt и Cinema. Кто знает, используется ли TIbeam.tiff больше, поскольку они не обновили его до png.
Согласно комментариям ниже, в Xcode 5.0.2 все 3 файла курсора были заменены одним файлом:
/ Применения / Xcode.app / Содержание / OtherFrameworks / XcodeEdit.framework / Версии / A / Ресурсы / DVTIbeamCursor.tiff
И в 5.1.1 (мальчик, они уверены, что любят что-то менять почти в каждой версии, не так ли?):
/ Применения / Xcode.app / Содержание / SharedFrameworks / DVTKit.framework / Версии / A / Re / источники DVTIbeamCursor.tiff
Я предполагаю, что файл представляет собой курсор с двойным разрешением (он же дисплей сетчатки), который уменьшен для экранов без сетчатки.
Если вы не можете найти файл ibeam в своем Xcode, попробуйте выполнить эту команду в терминале:
sudo find / -name ' Ibeam ' -print
В Xcode 7.3 курсор был перемещен внутри следующего файла пакета, поэтому команда поиска выше не найдет его:
/ Применения / Xcode.app / Содержание / SharedFrameworks / DVTKit.framework / Ресурсы / Assets.car
Я рекомендую использовать процесс, найденный здесь , чтобы установить новый курсор в файл комплекта. Если вам не нравится курсор, который он устанавливает (я чувствовал, что он все еще слишком темный, а серые контуры смешиваются с серым текстом комментария), выполните следующие действия:
- Загрузите последнюю версию Theme Engine (я успешно использовал версию 1.0.0 (111) с Xcode 7.3.1)
- Резервное копирование
/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/Assets.car
- Скопируйте
Assets.car
куда-нибудь, где его можно редактировать, например ~/Documents/Assets.car
.
- Запустите
Theme Engine.app
, нажмите Open Document
, затем откройте ~/Documents/Assets.car
.
- Прокрутите список элементов слева и выберите
DVTIbeamCursor
.
- Вы должны увидеть изображение курсора ibeam с нормальным и двойным разрешением на центральной панели. Перетащите ваше собственное изображение ibeam поверх любого курсора, и оно должно измениться, чтобы показать ваше изображение. Я использовал изображение PNG.
- Сохраните, затем закройте Theme Engine.
- Переместите измененный
Assets.car
обратно на /Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/Assets.car
и сохраните резервную копию измененной версии где-нибудь, чтобы вам не приходилось делать это снова, пока новая версия Xcode не изменит то, что в Assets.car
.
Возможно, вы также захотите отправить сердитое письмо в Apple с жалобой на то, что они не исправили эту проблему в последние 7+ лет, и вместо этого усложнили пользователям задачу исправления сломанного курсора Apple.
Не забудьте сохранить резервные копии отредактированных курсоров. Более новые версии XCode будут перезаписывать ваши пользовательские курсоры на стандартные по умолчанию при обновлении программного обеспечения.
Вот курсор ibeam, который я использую:
Щелкните правой кнопкой мыши ibeam и выберите сохранение изображения, чтобы получить версию png, или нажмите здесь , чтобы загрузить версию tiff.
Если вы создаете свой собственный курсор, обратите внимание, что там, где черные линии пересекаются в исходном курсоре, это место, где белые линии пересекаются в моем курсоре. Это потому, что оригинальный курсор предназначался для использования на белом фоне, поэтому его черная часть находится там, где находится точка курсора.