objective-c - 苹果电脑 : Check for keyboard events

标签 objective-c macos cocoa keyboard

我正在为 Mac 制作一个简单的钢琴游戏。当用户按下键盘时,钢琴键

可以同时按下。

但是,我不知道如何检查Mac键盘上的“D,F.....”键何时被按下。

objective-c

最佳答案

与许多事情一样,有多种方法可以做到这一点。然而,一个简单的方法是覆盖 -keyDown:在你的 NSView 子类中。据推测,这将是绘制钢琴键盘的 NSView 子类。示例:

- (void)keyDown:(NSEvent *)event
{
    switch ([event keyCode])
    {
        case 0x02:
            // D key pressed
            break;
        case 0x03:
            // F key pressed
            break;
        // etc.
    }
}

我找到了Key Codes应用程序可以方便地查找关键代码,但您也可以将日志语句放在 -keyDown: 中方法然后按键查找相应的代码。它们也在 <HIToolbox/Events.h> 中 header 。

参见Apple's Event Handling Guide了解更多信息。

关于objective-c - 苹果电脑 : Check for keyboard events,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11355355/

相关文章:

cocoa - NSWindows 的编程等效项为 "Visible at Launch"

c - 如何使用 fork 和 execv 以编程方式启动预览?

objective-c - Cocoa NSOutlineView 取消选择之前的选择

iphone - 缩放基于 View 的 iOS 应用程序的页面

ios - [UIView设置NeedsDisplay] : is there an easy way to know when drawRect is complete?

objective-c - NSTextField 光标错误,直到聚焦

linux - 在mac中递归选择文件 - 需要美化目录中的所有文件

Cocoa:绑定(bind)到存储在应用程序首选项中的 NSString 数组

ios - UITextView 三边边框

iphone - addSubView 到 viewController.navigatorController