【问题标题】:How to detect keypress in C++ on MacOS?如何在 MacOS 上检测 C++ 中的按键?
【发布时间】:2020-03-26 03:02:29
【问题描述】:

我正在编写一个需要展示一些事件驱动编程范例的作业,所以我认为按键检测应该可以正常工作。我在谷歌上搜索了几个小时,找到了一些适用于 Linux 和 Windows 的解决方案。不幸的是,我在 Mac 上。所以,我只提出了跨平台的 SDL。但我之前只使用 Python tkinter 处理事件,但我只能使用 C++ 来完成这项任务。而且我对 Xcode 和 C++ 都不是很熟悉,所以我不知道如何将 SDL 安装到 Xcode 的 C++ 中。另外,我只需要检测按键,所以一些较小的库也应该可以正常工作。我想知道是否有一个图书馆可以满足我的目的。程序可以很简单 - while(true){ cout

【问题讨论】:

  • 你试过 kbhit() 吗?

标签: c++ macos events sdl keyboard-events


【解决方案1】:

试试这个 sn-p:

SDL_Event e;
while (true)
    {
        while (SDL_PollEvent(&e) != 0) {
            if(e.type == SDL_KEYDOWN)
                cout << "The key you pressed was " << SDL_GetKeyName(e.key.keysym.sym) <<endl;
        }
    }

【讨论】:

    【解决方案2】:

    您只需在cout 语句上方添加这一行。

    cin>>pressed_key;
    

    【讨论】:

    • 我的意思是,pressed_key 应该是类似于事件监听器的东西 -.-''
    • 尝试在代码中添加keypad(stdscr, TRUE);。让我知道这是否有效@Zet.C.N
    猜你喜欢
    • 2017-05-11
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 2021-09-13
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多