【问题标题】:How to change NSCursor globally?如何全局更改 NSCursor?
【发布时间】:2017-02-03 15:42:06
【问题描述】:

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

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

这可能吗?


PS:我还需要恢复正常行为。

【问题讨论】:

  • 如果您要求切换,您可以关闭并打开以使特定光标显示在任何视图上,但不存在。您必须对每个视图进行子类化并覆盖适当的方法。
  • 啊...如何禁用一组视图的光标更改? (NSTextView、PDFView 等)你认为没有子类化可以实现吗?

标签: macos nstextview nscursor


【解决方案1】:

是的,这是可能的。我有一个几乎相似的要求,这是我解决它的方法:

创建窗口时,创建一个透明视图,其frame 与窗口相同。然后为您的特定光标添加一个光标矩形到视图(延伸到后者的bounds)。最后将其添加为窗口contentView 的最后一个子视图,使其充当叠加层。当此叠加层存在时,底层视图的光标矩形不会被激活。

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

希望对您有所帮助! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 2015-08-31
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多