在Xcode 4中更改鼠标的i-beam光标

phl*_*opy 24 macos xcode colors mouse-cursor

在Xcode 4中使用暗色方案,i光束光标(也称为文本选择光标)几乎不可见.有没有办法改变这个光标的颜色,特别是对于Xcode,还是在系统范围内失败?

如果它会自动变成与其背景形成对比的颜色,那就太好了.

Chr*_*gon 47

从Xcode 8开始,Apple将i-beam光标隐藏在没有人找到它的地方.相反,许多人选择使用Mousecape来改变所有程序中的工字梁.我更喜欢这种方法,因为它将i-beam固定在支持黑暗主题的其他程序中,例如Komodo编辑器.Mousecape应该适用于所有Xcode版本,更新Xcode不会破坏光标.我目前在macOS 10.13.2,Xcode 9.1中使用Mousecape.以下是步骤:

  1. 这里下载Mousecape
  2. 下载带有修改后的i-beam光标的"cape",例如亮白色灰色阴影
  3. Mousecape.app
  4. 从Mousecape的菜单栏: File > Import Cape > "cape" file downloaded above
  5. 右键单击导入的"cape"并选择 Apply
  6. 检查新光标是否在Xcode中工作.满意后,您可以通过从Mousecape的菜单栏运行命令在每次重新启动时应用光标:Mousecape > Install Helper Tool
  7. 安装macOS更新(例如10.13.1到10.13.2)可能需要重复步骤5和6.

原始答案:

Xcode没有使用系统范围的i-beam光标,因为我发现每个人都在谈论它,好像这是一个已知的事实.如果我不相信这些人,我不会花两天时间通过编辑CoreGraphics来找出如何改变系统工字梁光标,却发现Xcode的ibeam没有改变.顺便说一句,我也偶然发现了如何编辑其他系统游标.

我花了大部分时间来解决这个问题,但可以编辑Xcode中的i-beam光标.它只是一个TIFF文件,位于Xcode 3.2.6的以下位置(以前,我假设,但尚未测试):

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

Xcode 4.1具有相同的文件,但它不影响主编辑器中的工字梁(我假设它在某处使用,但可能没有).相反,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/DVTIbeamCursor@2x.png

编辑DVTIbeamCursor.png足以在我的系统主编辑器中更改工字梁.在另一个网站上,有人报道DVTIbeamCursor@2x.png将用于视网膜显示器或Apple的其他新型高分辨率显示器,如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

我猜这个文件是一个双分辨率(又名视网膜显示)光标,缩小了非视网膜屏幕.

如果在Xcode中找不到ibeam文件,请尝试在终端中运行此命令:

sudo find/-name'Ibeam' -print

在Xcode 7.3中,光标移动到以下bundle文件中,因此上面的搜索命令将找不到它:

/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Resources/Assets.car

我建议使用此处的过程将新光标修补到捆绑文件中.如果您不喜欢它安装的光标(我觉得它仍然太暗,灰色轮廓与灰色注释文本融为一体),请按照下列步骤操作:

  1. 下载最新版本的Theme Engine(我成功使用了Xcode 7.3.1版本1.0.0(111))
  2. 备份 /Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/Assets.car
  3. 复制Assets.car可以编辑的地方,例如~/Documents/Assets.car.
  4. 运行Theme Engine.app,单击Open Document,然后打开~/Documents/Assets.car.
  5. 向下滚动左侧的项目列表并选择DVTIbeamCursor.
  6. 您应该在中心面板中看到正常分辨率和双分辨率ibeam光标图像.将您自己的ibeam图像拖动到任一光标的顶部,它应该更改为显示您的图像.我使用了PNG图像.
  7. 保存,然后关闭主题引擎.
  8. 将修改Assets.car后的/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/Assets.car版本移回并保留修改版本的备份副本,以便在新的Xcode版本更改内容之前不必再次执行此操作Assets.car.

您可能还希望向Apple发送一封愤怒的信件,抱怨他们在过去7年多来没有解决这个问题,而是让用户越来越难以修补苹果公司破损的游标.

不要忘记保留已编辑游标的备份. 较新的Xcode版本会在进行软件更新时使用默认游标覆盖您的自定义游标.

这是我使用的ibeam游标: 以png格式右键单击ibeam并选择保存图像以获取png版本,或单击此处下载tiff版本.

如果您正在制作自己的光标,请注意原始光标中黑线相交的位置是光标中白线相交的位置.这是因为原始光标意在在白色背景上使用,因此它的黑色部分是光标热点所在的位置.

  • 欢迎来到Stack Overflow,很棒的第一个答案.我确认这是有效的,但我的DVTIbeamCursor.tiff文件位于不同的位置,可能是因为它已通过App Store安装.我在这里找到了它:`/ Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/DVTIbeamCursor.tiff`.您可以编辑您的答案以包含该路径吗? (5认同)
  • 在xcode 5.0.2中,位置没有改变,但名称有.PNG不再存在,只有一个名为"DVTIbeamCursor.tiff"的TIFF - 这应该是您需要替换标准或视网膜屏幕的唯一选择. (2认同)
  • 我创建了一个[public repo](https://github.com/egold/better-xcode-ibeam-cursor),它的版本应该适用于浅色和深色背景,因为它是黑色的,带有白色轮廓. (2认同)

Eri*_*erg 8

我为一个ibeam光标创建了一个公共仓库,它应该适用于浅色和深色背景,因为它是黑色的,带有白色轮廓.它包括简洁的指令,以及准备插入Xcode包的TIFF文件.

更新:git repo包含一个shell脚本,使安装变得非常简单.