如何将光标锁定在 Mac OS X 上的窗口内部?

Posted

技术标签:

【中文标题】如何将光标锁定在 Mac OS X 上的窗口内部?【英文标题】:How can I lock the cursor to the inside of a window on Mac OS X? 【发布时间】:2011-06-06 06:50:09 【问题描述】:

我正在尝试为 Mac OS X 制作一款游戏,该游戏涉及大量快速动作和鼠标光标移动。如果用户想在窗口模式下玩,我很想将光标锁定在窗口内部,以避免在激烈的战斗中意外更改程序(显然,如果用户更改程序或点击转义,这将自行取消暂停菜单。)

在 Windows 上,这可以通过 ClipCursor() 轻松完成。我在 Mac OS X 上找不到对应的版本。有吗?

【问题讨论】:

查看非常相似的问题 SO 4642867 为 Linux 提出同样的问题。 【参考方案1】:

看看 CGWarpMouseCursorPosition、CGAssociateMouseAndMouseCursorPosition 和 CGGetLastMouseDelta(ApplicationServices 的一部分)。

见http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/Quartz_Services_Ref/Reference/reference.html

【讨论】:

虽然这看起来非常非常有希望,但我遇到了一些可怕的光标刷新率问题。 SetMouseCoalescingEnabled 没有帮助。我会在这方面做更多的工作,如果我弄清楚发生了什么我会发布,但目前我无法想出任何可用于这些功能的东西。 你有没有想过这个问题?现在在 mac 上以窗口模式玩游戏时遇到同样的问题。

以上是关于如何将光标锁定在 Mac OS X 上的窗口内部?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用宏在Mac OS X上将MS word(docx)保存为安全/锁定PDF

如何让 Mac OS X 上的可可 emacs 加载新窗口的 .emacs 可视化自定义(第一个之后打开的任何文档)?

如何在 Qt 的 Mac OS X 工具窗口中删除最大化按钮

如何在苹果Mac上更改“终端”窗口的颜色光标样式?

Mac OS X 终端中的 Vim:逐字移动光标

如何在 MAC OS X 中获得最大 TCP 接收/发送窗口?