【问题标题】:Why is SFML not able to connect to my keyboard?为什么 SFML 无法连接到我的键盘?
【发布时间】:2021-05-06 04:37:37
【问题描述】:

我在 xcode 的 C++ 应用程序中使用 SFML。我需要识别程序中的击键。我有一台安装了 Catalina 10.15.2 的 macbook pro。这是我需要运行的代码类型:

#include <SFML/Window/Keyboard.hpp>

void Camera::move(){
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)){
        pos_x+=step_size;
    }
}

每次运行应用程序时,我都会收到输入管理员凭据的请求,以允许应用程序访问我的击键。这样做之后,代码仍然无法识别任何击键。我还在控制台中收到以下消息:

2021-02-02 01:46:07.445793+0100 code[24460:2367069] [default] 0x100011151: TCC deny IOHIDDeviceOpen
2021-02-02 01:46:07.446085+0100 code[24460:2367069] [default] 0x100011111: TCC deny IOHIDDeviceOpen
2021-02-02 01:46:07.446150+0100 code[24460:2367069] [default] 0x100011151: TCC deny IOHIDDeviceOpen
We got a keyboard without any keys (1)
2021-02-02 01:46:07.446225+0100 code[24460:2367069] [default] 0x100011111: TCC deny IOHIDDeviceOpen
We got a keyboard without any keys (1)

除此之外,SFML 库可以在我的计算机上完美运行。有谁知道问题可能是什么以及我该如何解决?谢谢

【问题讨论】:

    标签: macos keyboard sfml


    【解决方案1】:

    isKeyPressed 轮询硬件,在 Catalina 上,您需要在“安全和隐私”偏好设置中专门授予该应用对 Mac 的访问权限。我不使用 mac,所以这可能不起作用,因为我正在使用 macOS 用户指南来回答这个问题

    【讨论】:

    • 我在控制台中遇到了另一个以TCC deny IOHIDDeviceOpen 崩溃的软件,这确实是解决方案。通常操作系统会提示您,但由于某种原因,这并没有发生。
    猜你喜欢
    • 2017-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多