setHiddenUntilMouseMoves实际上并没有隐藏光标

时间:2017-01-12 18:49:52

标签: swift macos cocoa cursor appkit

我试图将光标隐藏在我为Mac制作的幻灯片应用程序中。为了做到这一点,我从上次鼠标移动开始等待3秒,然后我调用setHiddenUntilMouseMoves。 不幸的是,即使我知道程序通过两个Xcodes的调试器和一个简单的打印调用后到达函数调用,光标实际上并没有消失。 我还测试过,如果在打电话之后可能会有一些鼠标移动,那么我可以肯定地说setHiddenUntilMouseMoves实际上已被调用,并且鼠标在此之后不再移动,但是光标不会消失。

这是代码使用:

var mouseTimer = Timer()

override func mouseMoved(with event: NSEvent) {
    super.mouseMoved(with: event)

    print("...moved")

    mouseTimer.invalidate()
    mouseTimer = Timer.scheduledTimer(withTimeInterval: 3.0, repeats: false) { _ in
        NSCursor.setHiddenUntilMouseMoves(true)
        print("TRIED TO HIDE CURSOR")
    }
}

override func mouseExited(with event: NSEvent) {
    mouseTimer.invalidate()
}

func hideCursorUntilItIsMoved() {
    NSCursor.setHiddenUntilMouseMoves(true)
}

有谁知道如何解决这个问题? 非常感谢提前!

0 个答案:

没有答案