我知道这个问题已经回答了:
Detect if cursor is hidden on Mac OS X
但此时,函数“CGCursorIsVisible”已被弃用。根据帮助文献,没有替代品。
使用隐藏和显示功能(CGDisplayHideCursor / CGDisplayShowCursor)时,不会返回对光标可见性的引用。虽然显示/隐藏计数器由石英维护,但无法访问该值。
那么,我们如何确定光标是否可见?
答案 0 :(得分:1)
我遇到了同样的问题,找不到这个问题的有效答案。
我通过实现一个计数器来解决它,当我的应用程序启动时,该计数器设置为0。我每次隐藏光标时都会增加它,然后我可以在_counter != 0
。
你的Mac似乎有一个自己的计数器用于每个应用程序...所以如果你的应用程序不在前台并使用[NSCursor hide]
命令,当你的应用程序成为keyWindow时,它仍然可见但变得不可见试。
答案 1 :(得分:0)
我知道这有点晚了,但是我最近偶然发现了一个类似的问题。解决此问题的一种方法是将一个空游标推入游标堆栈,而不是像这样调用NSCursor.hide()
:
let myCursor = NSCursor.init(image: NSImage.init(size: NSSize(width: 1, height: 1)), hotSpot: NSPoint(x: 0, y: 0))
myCursor.set()
稍后,您可以使用NSCursor.arrow.set()
或NScursor.arrow.push()
按下普通箭头光标。
这样,您就不会出现隐藏/取消隐藏计数的问题。
从理论上讲,您还应该能够对照NSCursor.current
检查myCursor
的引用,并查看您是否还有 invisible 光标(不过我没有检查)。