首页 > 解决方案 > 如何在 Swift 中隐藏光标?

问题描述

我正在尝试制作一个第一人称游戏,其中移动鼠标会改变相机角度,类似于第一人称模式或 Minecraft 中的 Roblox。怎么做?我在问如何做基本功能,所以没有代码可以提供。我只需要知道如何在 Swift 或更具体地说是 Metal 或 Cocoa 中隐藏和锁定光标位置。

标签: swiftcocoacursormetal

解决方案


您可以继承 NSView,为鼠标进入和退出添加跟踪区域,覆盖 NSView 的 mouseEntered 和 mouseExited 方法,然后在此处隐藏和取消隐藏光标:

import Cocoa

class HiddenCursorView: NSView {
    override func awakeFromNib() {
        addTrackingArea(NSTrackingArea(rect: bounds, options: [.activeAlways, .mouseEnteredAndExited], owner: self, userInfo: nil))
    }
    override func mouseEntered(with event: NSEvent) {
        NSCursor.hide()
    }
    @objc override func mouseExited(with event: NSEvent) {
        NSCursor.unhide()
    }
}

推荐阅读