【问题标题】:Make the mouse cursor stay visible while typing in NSTextField在输入 NSTextField 时使鼠标光标保持可见
【发布时间】:2013-01-14 10:34:47
【问题描述】:

在 OS X 中,当您在每个应用程序中输入文本字段时,鼠标光标通常会消失。即使我在 Stack Overflow 上输入此文本字段,光标也会消失。 大多数时候这是有道理的。但在我的应用程序中,我希望它保持可见,因为用户必须在文本字段之间进行大量点击,而且鼠标总是不在时真的很讨厌。

在输入NSTextField 时如何使光标保持可见?

【问题讨论】:

  • 您的应用程序不支持在字段之间切换吗?如果没有,为什么不呢?
  • 确实如此。但无论如何,beta 测试人员发现鼠标不见了很烦人。

标签: macos cocoa nstextfield


【解决方案1】:

好的,我解决了。

当您在+[NSCursor setHiddenUntilMouseMoves:] 添加断点时,您会注意到它是由[NSTextField keyDown:] 调用的
苹果表示,为了防止鼠标消失,重写此方法不是一个好主意。所以我使用 NSTextFieldDelegate 来获得-(void)controlTextDidChange:(NSNotification *)obj-(void)controlTextDidEndEditing:(NSNotification *)obj 的通知。然后我打电话给[NSCursor setHiddenUntilMouseMoves:NO]

它不是 100% 干净,但它可以工作。

非常感谢 Richard 和 Kurt 的大力帮助 :)

【讨论】:

    【解决方案2】:

    我的猜测是,在苹果代码中很深,鼠标在打字时会消失。因为即使您刚开始打字,鼠标也会消失,甚至出现在文本框之外。就像您在浏览器窗口中单击并输入一样。

    【讨论】:

    • 没那么深。它可能只是打电话给+[NSCursor setHiddenUntilMouseMoves:]。尝试在上面设置一个断点,看看它是从哪里调用的;它可能会让你知道在哪里打电话给[NSCursor setHiddenUntilMouseMoves:NO]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    • 1970-01-01
    相关资源
    最近更新 更多