问题标签 [keyboard-events]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
835 浏览

objective-c - 未激活应用程序时如何观察键盘输入事件

如何在应用程序未激活时观察键盘输入事件。

0 投票
2 回答
1435 浏览

keyboard-events - 在 Xlib 中模拟 CAPS LOCK 按下

如何使用 Xlib 模拟 CAPS LOCK 打开和关闭按下?

0 投票
1 回答
3999 浏览

x11 - X11 中的便携式键码?

我想获得与映射无关的键码,但文档说 XKeyEvent 结构中的“键码”取决于硬件和驱动程序,我不能依赖它。如何在 Windows 中获得一些便携式密钥代码,例如 VK_*?

0 投票
3 回答
22689 浏览

c# - 在 DataGridView 中使用 +(加号)和 -(减号)键盘键作为增量器和减量器

在我用 C# 编写的 WinForms 应用程序中,我有一个 DataGridViewTextBoxColumn,其中的单元格包含整数值,我希望用户能够使用键盘上的 + 和 - 键来增加或减少这些值。

我已经处理了 KeyDown 事件,因为它通常用于处理 Delete 键等,但它不适用于加号和减号键,因为按下它们会导致单元格进入编辑模式,并且 KeyDown 事件是结果从未为这些键开火。KeyPress 事件也一样

实际上,如果我将单元格设置为只读,它就会被触发,但我对这个解决方案不满意,因为它会迫使我在代码的几个区域将属性从 true 设置为 false,并且很快就会变得混乱。

请问什么是实现这一目标的最佳方法?

谢谢。

0 投票
3 回答
14607 浏览

opengl - GLUT 键按下并按下 CTRL 键

我找到了很多关于使用 GLUT 来检测是否Ctrl使用 GLUT_ACTIVE_CTRL 宏按下键的信息。显然,这个宏只在键盘或鼠标回调函数中有效。我需要知道Ctrl在我的主循环中的某个点是否按下了键,但是 GLUT_ACTIVE_CTRL 在这种情况下似乎不起作用。

Ctrl那么,有没有办法以独立于平台的 GLUT方式检测按键上的按键向上和按键向下事件(无需键入任何其他键)?

Ctrl编辑:按下键时不会触发键盘回调(至少对于默认设置) 。这是基本问题,我只能在Ctrl按下另一个键并因此触发键盘回调时测试该键是否被按下。

我的设置是这样的:

当我按下任何普通字符时,“keydown”会打印到标准输出。当我按下Ctrl键时,什么也没有发生。如果我按Ctrl+ C,则“按下 keydown 控制键”。被打印。

但是,在我的主循环中,我添加了:

它总是打印“控制键向上”。不管我是否Ctrl按键。

0 投票
1 回答
1679 浏览

javascript - 禁止在 Internet Explorer 中默认处理 Ctrl+O

我试图抑制 IE 对 Ctrl+O 的默认处理。

我有一个 onKeyDown 处理程序,它被调用,但即使我调用event.cancelBubbleand return false,默认的 File|Open 命令仍然运行。

顺便说一句:这并不重要,因为我可以选择另一个键,但很好奇是否有办法解决这个问题。

0 投票
2 回答
1405 浏览

macos - 如何在 Mac 上运行的 glut 程序中检测命令键作为修饰符?

我正在 Mac 上开发一个 GLUT 程序。Mac 似乎以一种有趣的方式通过 GLUT 传递修饰符。glutGetModifiers() 不会捕获 Alt 和控制键,而是将它们转换为按钮 int。glutGetModifiers() 或按钮 int 似乎都没有捕获命令键。此外,它不会显示为我的 glutKeyboardFunc(...) 中的键。

有什么方法可以捕获/检测 GLUT 中的命令(苹果)键?

0 投票
1 回答
3561 浏览

c# - 在 c# 中使用 null ActiveSource 模拟 Backspace 按钮按下

背景:我们在触摸屏信息亭上使用屏幕键盘来允许用户输入文本。退格按钮失败,因为 System.Windows.Input.Keyboard.PrimaryDevice.ActiveSource 变为空。

代码上下文:

我不能使用带有 null ActiveSource 的 KeyEventArgs,并且 System.Windows.Forms.SendKeys.SendWait("{BACKSPACE}") 也不起作用。

0 投票
1 回答
368 浏览

keyboard - 在 SproutCore 中捕获删除/退格键

我有一个 SproutCore 窗格——特别是一个 PalettePane——它包括一个绑定到屏幕上其他位置的对象的表单。窗格导致对象删除交互出现问题。我希望它的工作方式是:

  • 如果文本输入字段处于焦点,退格/删除键应应用于这些字段(即编辑文本)
  • 如果没有文本输入字段具有焦点,则退格/删除键应删除与表单相关的选定对象。(当用户选择了一个对象时,窗格就会出现,所以如果窗格存在,那么就有一个选定的对象。)

到目前为止,我得到这些行为中的一种或另一种,从来没有两者兼而有之。如果我acceptsKeyPane: YES在窗格中设置,我会获得应用于文本字段的退格/删除键,但当文本字段没有焦点时不会删除所选对象。如果我使用acceptsKeyPane: NO,当我编辑文本字段并按退格键时,它会删除我试图编辑的对象。

雪上加霜的是,在 Firefox 中,带有acceptsKeyPane: YES退格键的浏览器会捕获并解释为后退按钮单击,这会让用户感到沮丧。

我查看了root_responder.js代码,看起来 SproutCore 为 Firefox 处理退格键的方式不同,但如果我可以如上所述处理它们,那么 FF 和其他浏览器之间的区别应该没有实际意义。

ETA 2011 年 5 月:在此处阅读答案时请记住,用于 1.5、1.6 及更高版本的 SproutCore API 可能与此不同。

0 投票
3 回答
7278 浏览

iphone - 如何在 iPhone (iOS) 上检测硬件键盘上的键盘事件

我有一个带有登录页面的应用程序,其中包含三个不同随机字符的三个字段。当用户离开最后一个字段时,软键盘消失,用户可以触摸屏幕上的“登录”按钮。

当连接了硬件键盘(蓝牙或物理)时,我希望能够在其上点击“输入”。但是,由于用户不在一个字段中,我看不到如何检测这个键被按下。

有人会对哪个类处理按键事件有建议吗?大概有一个代表可以用来接收这些,但我通过 SDK 进行的搜索没有找到任何东西。

谢谢