如何在OSX上检测当前系统光标?

时间:2016-12-20 11:52:42

标签: macos cocoa cursor nsobject nscursor

有没有办法知道mac / OSX上当前的系统光标是什么?我知道我们可以使用[NSCursor currentSystemCursor]调用获取当前光标。但这并没有告诉我们当前光标是什么。支票 if ([[NSCursor currentSystemCursor] isEqual:[NSCursor arrowCursor]])总是失败。即使支票if ([[NSCursor currentSystemCursor] isEqual:[NSCursor currentSystemCursor]])总是返回零。

我已经经历了类似的问题How to get current type of mouse cursor in Mac OS X?,但没有找到任何方法在那里做。

对此有任何帮助表示赞赏。提前谢谢。

2 个答案:

答案 0 :(得分:0)

不幸的是没有。

您可以做的是获取光标图像并将该图像与已知光标(箭头,工字梁等)的图像进行比较。

然而,许多应用程序提供了每个光标的轻微变化,因此除非您不断更新应用程序以了解更多和更多光标变化,否则您的检查永远不会是详尽无遗的。

您甚至可以构建一个算法来分析光标图像,以启发式方法对其进行分类。

听起来很黑,我知道。但它确实有效。有点。

答案 1 :(得分:0)

我能够使用double equals使它起作用。

例如:

[NSCursor currentCursor] == [NSCursor arrowCursor]

返回我期望的结果。令人讨厌的是,您不仅可以查询类型,而且至少可以用来设置条件断点和类似的东西。

希望有帮助。