标签: keyboard-events

UISearchbar键盘搜索按钮动作

UISearchBar当我UISearchBar在键盘上输入文字时,我正在使用.那时,键盘返回键是"搜索".我想按下键盘搜索按钮时实现事件.我该如何实施该行动?在UITextField

-(BOOL)textFieldShouldReturn:(UITextField *)textField;
Run Code Online (Sandbox Code Playgroud)

UISearchBar它没有返回行动.

谢谢你的帮助.

iphone objective-c keyboard-events uisearchbar

37
推荐指数
3
解决办法
4万
查看次数

如何检测按下的键是否会在<input>文本框中产生一个字符?

我有一个常规的文本框:

<input type="text"> 
Run Code Online (Sandbox Code Playgroud)

我使用jQuery来处理与键相关的事件:

$("input:text").keydown(function() {
    // keydown code
}).keypress(function() {
    // keypress code
}).keyup(function() {
    // keyup code
});
Run Code Online (Sandbox Code Playgroud)

用户专注于文本框并按下键盘上的各种键(通常的键:字母,数字,SHIFT,BACKSPACE,SPACE,......).我需要检测用户何时按下将增加文本框值长度的键.例如,"A"键会增加它,"SHIFT"键不会.

我记得看过PPK的讲座,他提到了这两者之间的区别.它与事件有关 - keydown与keypress - 可能还有事件属性 - key,char,keyCode.

更新!

我需要在keydown或keypress处理程序中知道这些信息.我不能等待keyup事件发生.

为什么我需要这个:

我有一个文本框,其大小根据用户输入动态变化.你可以看看这个演示:http://vidasp.net/tinydemos/variable-size-text-box.html

在演示中,我有一个keydown和keyup处理程序.keyup处理程序根据输入值调整文本框大小.但是,keydown处理程序将大小设置为比输入值大1个字符.我这样做的原因是,如果我没有,那么角色将溢出文本框外,只有当用户放开键时,文本框才会展开.这看起来很奇怪.这就是我必须预测新角色的原因 - 在文字框中出现角色之前,我会在每个keydown上放大文本框.正如您在演示中看到的,这种方法看起来很棒.

然而,问题是BACKSPACE和ARROW键 - 它们还将扩展keydown上的文本框,并且只有在keyup上才会更正文本框大小.

解决方法:

解决方法是手动检测BACKSPACE,SHIFT和ARROW键,并根据:

// keydown handler
function(e) {
    var len = $(this).val().length;
    if (e.keyCode === 37 || e.keyCode === 39 ||
        e.keyCode === 16) { // ARROW LEFT or ARROW RIGHT or SHIFT key
        return;
    } else if (e.keyCode === …
Run Code Online (Sandbox Code Playgroud)

javascript jquery keyboard-events

34
推荐指数
4
解决办法
4万
查看次数

用Python捕获Control-C

我想知道是否可以通过以下方式在python中捕获Control-C:

 if input != contr-c:
    #DO THINGS
 else:
    #quit
Run Code Online (Sandbox Code Playgroud)

我已经阅读了有关的内容,但他们tryexcept KeyboardInterrupt没有为我工作.

python error-handling keyboard-events

29
推荐指数
2
解决办法
5万
查看次数

Chrome中的KeyboardEvent,keyCode为0

我试图在调度的事件对象上设置keyCode.

单击按钮时,会在文本框控件上引发事件以模拟keydown事件.事件成功引发,但keyCode为0.我需要将具有正确keyCode的事件对象发送到文本框.我一直在使用这里的代码.

如何在调度事件中设置keyCode值?

<html>
    <head>      
    </head>
    <body>
        <input type="button" id="btn" value="Click"></input>
        <input type="text" id="txt"></input>
        <script>
            document.getElementById('btn').addEventListener("click", btnClick);
            document.getElementById('txt').addEventListener("keydown", txtKeydown);         

            function btnClick(e) {
                var txt = document.getElementById('txt');               

                var dispatchKeyboardEvent = function(target, initKeyboradEvent_args) {
                    var e = document.createEvent("KeyboardEvents");
                    e.initKeyboardEvent.apply(e, Array.prototype.slice.call(arguments, 1));
                    e.keyCode = 83;
                    e.charCode = 0;
                    target.dispatchEvent(e);
                };

                var canceled = !dispatchKeyboardEvent(txt,
                'keydown', true, true,  // type, bubbles, cancelable
                window,  // window
                's',  // key
                0, // location: 0=standard, 1=left, 2=right, 3=numpad, 4=mobile, 5=joystick
                false, false, false);  // Ctr, …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome keydown keyboard-events

27
推荐指数
2
解决办法
3万
查看次数

在AutoHotkey中检测双键按下

当用户双击"按下" esc键时,我想在AutoHotkey中触发一个事件.但是,如果不是双按(例如在一秒钟的空间内),让逃逸按键进入应用程序焦点.

我该怎么做呢?

到目前为止我已经想出了这个,但是我无法弄清楚如何检查第二个退出键按下:

~Esc::

    Input, TextEntry1, L1 T1
    endKey=%ErrorLevel%

    if( endKey != "Timeout" )
    {
        ; perform my double press operation
        WinMinimize, A
    }
return
Run Code Online (Sandbox Code Playgroud)

autohotkey keyboard-shortcuts keyboard-events

26
推荐指数
1
解决办法
2万
查看次数

如何在控制台应用程序中处理按键事件

我想创建一个控制台应用程序,它将显示在控制台屏幕上按下的键,我到目前为止制作了这段代码:

    static void Main(string[] args)
    {
        // this is absolutely wrong, but I hope you get what I mean
        PreviewKeyDownEventArgs += new PreviewKeyDownEventArgs(keylogger);
    }

    private void keylogger(KeyEventArgs e)
    {
        Console.Write(e.KeyCode);
    }
Run Code Online (Sandbox Code Playgroud)

我想知道,我应该在main中输入什么,以便我可以调用该事件?

c# event-handling keyboard-events keylogger

26
推荐指数
2
解决办法
6万
查看次数

限制Xamarin.Forms中输入字段的输入长度和字符

如何限制在Xamarin.Forms中的Entry控件中输入的长度和字符.我需要创建自定义控件吗?有没有办法从Entry(或其他控件)派生,所以我可以应用必要的每平台输入限制.

一个示例是一个数字字段,最多只能包含3个字符,仅限数字.

将Entry控件的Keyboard属性设置为Keyboard.Numeric仅设置iOS的键盘.它不限制实际的文本输入 - 即我仍然可以输入非数字字符.我也没有看到限制进入长度的方法.

c# textinput keyboard-events xamarin.forms

26
推荐指数
5
解决办法
4万
查看次数

从Linux输入设备访问密钥

我想做什么

所以,我一直在尝试在Linux中访问键盘输入.具体来说,我需要能够访问修改键按下而不按下其他键.此外,我希望能够在没有运行X系统的情况下执行此操作.

所以,简而言之,我的要求是:

  • 适用于Linux
  • 不需要X11
  • 无需按任何其他键 即可检索修改键
    • 这包括以下键:
      • 转移
      • 控制
      • Alt键
    • 我需要的只是一个简单的0 = not pressed,1 = currently pressed让我知道在检查键盘时是否按下了键

我的电脑设置

我正常的Linux机器在我的新公寓的卡车上; 所以,我现在只有Macbook Air可以使用.因此,我在VM中运行Linux来测试它.

VirtualBox中的虚拟机

  • 操作系统:Linux Mint 16
  • 桌面环境:XFCE

以下所有内容都是在这种环境下完成的.我已经尝试过使用X运行和其他一个ttys.

我的想法

如果有人可以纠正我,我会改变这个.

我已经做了一些阅读,意识到更高级别的库不提供这种功能.修饰符键与其他键一起使用以提供备用键代码.通过Linux中的高级库访问修饰键本身并不容易.或者说,我还没有在Linux上找到高级API.

我认为libtermkey就是答案,但它似乎不支持Shift修饰键,比普通键击检索更好.我也不确定它是否可以在没有X的情况下工作.

在使用libtermkey时(在我意识到它没有像Shift-Return这样的情况下发生转变之前),我正计划编写一个可以运行以收集键盘事件的守护进程.运行守护程序的副本只会管理键盘数据请求并接收键盘数据作为响应.我可以使用此设置在后台运行某些内容,以防我无法在特定时间检查密钥代码状态(必须在发生时接收密钥代码).

下面是我尝试编写一个可以从Linux键盘设备读取的程序.我还包括我的小支票,以确保我有合适的设备.

尝试#1

我试图直接访问键盘设备,但遇到了问题.我在这里尝试了另一个Stack Overflow线程中的建议.它给了我一个分段错误; 所以,我把它从fopen改为open:

// ...

int fd;
fd = open("/dev/input/by-path/platform-i8042-serio-0-event-kbd", O_RDONLY);

char key_map[KEY_MAX/8 + 1];

memset(key_map, 0, sizeof(key_map));
ioctl(fd, EVIOCGKEY(sizeof key_map), key_map);

// ...
Run Code Online (Sandbox Code Playgroud)

虽然没有分段错误,但没有任何按键的指示(不仅仅是修改键).我测试了这个:

./foo && echo "TRUE" …
Run Code Online (Sandbox Code Playgroud)

c linux keyboard-events modifier-key

25
推荐指数
1
解决办法
3万
查看次数

FullScreen Swing Components Fail to Receive Keyboard Input on Java 7 on Mac OS X Mountain Lion

Update 12/21:

7u10 was recently released. Confirmed that:

  1. The issue still persists
  2. Thankfully, the workaround still functions!

Update 11/7:

And we have a workaround!

Leonid Romanov from Oracle on the openjdk.java.net mailing list provided some insight as to what's going on:

Well, although I'm not 100% sure yet, but it looks like when we enter full screen some other window becomes the first responder, hence the beep. Could you please try the following workaround: after calling setFullScreenWindow() on a …

java macos swing fullscreen keyboard-events

24
推荐指数
1
解决办法
5524
查看次数

如何在不接受焦点的元素上抓取键盘事件?

我知道,为了处理输入字段中的键盘事件,您可以使用:

$('input').keyup(function(e){
var code = e.keyCode // and 13 is the keyCode for Enter
});
Run Code Online (Sandbox Code Playgroud)

但是,现在,我有一些divli元素,我没有form元素,我的元素都没有被认为是表单元素,也没有一个接受焦点标签和类似的东西.

但是现在我需要处理div元素中的keyup(或者keydown,或者keypress无关紧要)事件.我试过了:

$('div#modal').keyup(function(e){
   if (e.keyCode == 13)
   {
      $('#next').click(); // Mimicking mouse click to go to the next level.
   }
});
Run Code Online (Sandbox Code Playgroud)

但问题是,它不起作用.我该怎么办?

javascript keyboard jquery keyboard-events

23
推荐指数
2
解决办法
2万
查看次数