macos – 如何在全球范围内更改NSCursor?

我正在开发一个具有多个窗口和视图的应用程序(NSTextView等).

我想在我的应用程序中全局更改游标,这样即使光标进入(例如)NSTextView的trackingRect,它也不会改变.

这可能吗?

PS:我还需要恢复到通常的行为.

最佳答案 是的,这是可能的.我有一个几乎相似的要求,这就是我如何解决它:

创建窗口时,创建一个透明视图,其框架与窗口的框架相同.然后为特定光标的视图(扩展到后者的边界)添加一个cursor rect.最后将其添加为窗口contentView的最后一个子视图,以便它充当叠加层.如果存在此叠加层,则不会激活基础视图的光标.

有关详细说明和工作代码,请参阅https://stackoverflow.com/a/43886799/7908996(阅读窗口的contentView而不是WebView).它还描述了如何恢复到通常的行为.

希望有所帮助! 🙂

点赞