Подтвердить что ты не робот

Изменение курсора i-beam мыши в Xcode 4

С темной цветовой схемой в Xcode 4 курсор i-beam (иначе говоря, курсор выбора текста) почти невидим. Есть ли способ изменить цвет этого курсора, как для Xcode, так и для этого, общесистемного?

Было бы неплохо, если бы оно автоматически изменилось на цвет, контрастирующий с его фоном.

4b9b3361

Ответ 1

Как и в Xcode 8, Apple скрыла курсор i-ray где-то там, где его никто не нашел. Вместо этого многие решили использовать Mousecape для изменения i-луча во всех программах. Я предпочитаю этот метод, так как он фиксирует 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-луча системы на редактирование CoreGraphics только для того, чтобы найти, что Xcode ibeam не изменяется. Кстати, я также наткнулся на как редактировать другие системные курсоры.

Я провел большую часть выходных, выясняя это, но курсор i-beam в Xcode CAN можно редактировать. Это просто файл TIFF в следующем месте для Xcode 3.2.6 (и ранее, я предполагаю, но не протестировал):

/Developer/Library/PrivateFrameworks/XcodeEdit.framework/Versions/A/Resources/TIbeam.tiff

Xcode 4.1 имеет тот же файл, но он не влияет на i-beam в главном редакторе (я предполагаю, что он используется где-то, но, возможно, нет). Вместо этого главный редактор в Xcode 4.1 использует этот файл:

/Developer/Library/PrivateFrameworks/DVTKit.framework/Versions/A/Resources/DVTIbeamCursor.tiff

Файлы ibeam снова перемещены в Xcode 4.4:

/Applications/Xcode.app/Contents/OtherFrameworks/XcodeEdit.framework/Versions/A/Resources/TIbeam.tiff

/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/DVTIbeamCursor.png

/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/[email protected]

Редактирование DVTIbeamCursor.png было достаточно для изменения i-луча в главном редакторе в моей системе. На другом сайте кто-то сообщил, что [email protected] будет использоваться на экране сетчатки или других новых дисплеях высокого разрешения, таких как Thunderbolt и Cinema. Кто знает, если TIbeam.tiff даже используется больше, поскольку они не обновили его до png.

Согласно комментариям ниже, в Xcode 5.0.2 все 3 файла курсора были заменены одним файлом:

/Applications/Xcode.app/Contents/OtherFrameworks/XcodeEdit.framework/Versions/A/Resources/DVTIbeamCursor.tiff

И в 5.1.1 (мальчик, они наверняка любят менять вещи почти в каждой версии, не так ли?):

Источники/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Re/DVTIbeamCursor.tiff

Я предполагаю, что этот файл является двойным разрешающим (aka retina display) курсором, который уменьшен для экранов без сетчатки.

Если вы не можете найти файл ibeam в своем Xcode, попробуйте запустить эту команду в терминале:

sudo find/-name 'Ibeam' -print

В Xcode 7.3 курсор был перемещен внутри следующего файла пакета, поэтому команда поиска не найдет его:

/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Resources/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.
  • Сохранить, затем закройте тему Engine.
  • Переместите измененный Assets.car обратно на /Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/Assets.car и сохраните резервную копию измененной версии где-нибудь, чтобы вам не пришлось делать это снова до тех пор, пока новая версия Xcode не изменится, что в Assets.car.

Вы также можете отправить сердитое письмо в Apple, чтобы пожаловаться на то, что они не исправили эту проблему за последние 7+ лет и вместо этого стали более трудными для пользователей исправлять сломанный курсор Apple.

Не забудьте сохранить резервные копии отредактированных курсоров. Новые версии Xcode будут перезаписывать ваши пользовательские курсоры по умолчанию при обновлении программного обеспечения.

Здесь используется курсор ibeam: In png format Щелкните правой кнопкой мыши на ibeam и выберите сохранение изображения, чтобы получить версию png, или нажмите здесь загрузить версию tiff.

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

Ответ 2

Я создал публичное репо для курсора ibeam, который должен работать на светлых и темных фонах, потому что он черный с белым контуром. Он содержит краткие инструкции и TIFF файл, готовый зайти в пакет Xcode.

Обновление: репозиторий git включает оболочку script, что упрощает установку.

Ответ 3

К сожалению, это разница между курсорами Carbon и Cocoa cursors- Cocoa не будет инвертировать; по крайней мере, до Snow Leopard. Во Льве даже Углеродные курсоры ведут себя так, как вы этого не хотите.

Если у вас есть машина, использующая Snow Leopard или ранее, сравните поведение I-луча в BBEdit или TextWrangler (например, с помощью курсоров Carbon); он станет полностью белым на черном фоне. Даже это немного хрупко - когда я меняю увеличение экрана, BBEdit ранее белый курсор становится черным.

Вы можете установить курсор Carbon в приложении Cocoa. Попробуйте это в подклассе NSTextView:

#import <Carbon/Carbon.h>
[...]

- (void)resetCursorRects;
{
    // disable existing cursor setting behavior
}

- (void)cursorUpdate:(NSEvent *)event;
{
    SetThemeCursor(kThemeIBeamCursor);
}

- (void)updateTrackingAreas;
{
    for (NSTrackingArea *trackingArea in [self trackingAreas])
        [self removeTrackingArea:trackingArea];

    NSTrackingArea *trackingArea = [[NSTrackingArea alloc] initWithRect:NSZeroRect options:NSTrackingCursorUpdate | NSTrackingActiveInKeyWindow | NSTrackingInVisibleRect owner:self userInfo:nil];
    [self addTrackingArea:trackingArea];
}

(В 64-битной версии вы увидите, что эта функция исключена из заголовков, но символ там и работает.) Если вы достаточно мотивированы, вы можете исправить Xcode, чтобы сделать какой-либо вариант выше, возможно, из плагина Xcode.

Если вы на льве, вот что должно выглядеть:

Inverting cursor

Итак, я предлагаю подать ошибку с Apple, чтобы сделать системный курсор I-beam (или NSCursor вообще) правильно обрабатывать темные фоны; это не проблема, специфичная для Xcode, и это должно было быть исправлено несколько лет назад.

Ответ 4

Для предварительного просмотра Xcode 5 я создал лучшие шаблоны I-Beam for Dark. Вы можете использовать его свободно. http://www.scigems.org/wordpress/?p=92

Ответ 5

Согласно этой теме на форумах Apple:

https://discussions.apple.com/thread/2811447?start=0&tstart=0

"цвет курсора", упомянутый в шрифтах XCode 4 и предпочтениях цветов, на самом деле является курсором, который вы видите, когда вы нажали в окне для ввода текста.

Курсор I-луча, который вы видите, когда вы перемещаете мышь в окне редактирования кода, - это широкая функция Mac-OS, которую вы не можете изменить в XCode.

Сообщение на форуме выше предполагает поиск стороннего программного обеспечения для изменения атрибутов общесистемного курсора I-луча.

В другом сообщении указывается, что вы можете хотя бы отредактировать размер курсора, чтобы сделать его более заметным:

Системные настройки → Универсальный доступ → Мышь и трекпад → Размер курсора