【问题标题】:OSX - How to tell if cursor is visibleOSX - 如何判断光标是否可见
【发布时间】:2014-05-03 23:40:00
【问题描述】:
【问题讨论】:
标签:
macos
osx-mavericks
mouse-cursor
【解决方案1】:
我遇到了同样的问题,但找不到该问题的有效答案。
我通过实现一个在我的应用程序启动时设置为 0 的计数器解决了这个问题。每次隐藏光标时我都会增加它,然后我可以在 _counter != 0 时取消隐藏。
您的 Mac 似乎对每个应用程序都有自己的计数器...因此,如果您的应用程序不在前台并且它使用 [NSCursor hide] 命令,当您的应用程序再次变为 keyWindow 时,它仍然可见但变为不可见。
【解决方案2】:
我知道这有点晚了,但我最近偶然发现了一个类似的问题。解决此问题的一种方法是将空游标压入游标堆栈,而不是像这样调用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 光标(虽然我没有检查过)。