UISearchBar当我UISearchBar在键盘上输入文字时,我正在使用.那时,键盘返回键是"搜索".我想按下键盘搜索按钮时实现事件.我该如何实施该行动?在UITextField它
-(BOOL)textFieldShouldReturn:(UITextField *)textField;
Run Code Online (Sandbox Code Playgroud)
但UISearchBar它没有返回行动.
谢谢你的帮助.
我有一个常规的文本框:
<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) 我想知道是否可以通过以下方式在python中捕获Control-C:
if input != contr-c:
#DO THINGS
else:
#quit
Run Code Online (Sandbox Code Playgroud)
我已经阅读了有关的内容,但他们try并except KeyboardInterrupt没有为我工作.
我试图在调度的事件对象上设置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) 当用户双击"按下" 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) 我想创建一个控制台应用程序,它将显示在控制台屏幕上按下的键,我到目前为止制作了这段代码:
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中输入什么,以便我可以调用该事件?
如何限制在Xamarin.Forms中的Entry控件中输入的长度和字符.我需要创建自定义控件吗?有没有办法从Entry(或其他控件)派生,所以我可以应用必要的每平台输入限制.
一个示例是一个数字字段,最多只能包含3个字符,仅限数字.
将Entry控件的Keyboard属性设置为Keyboard.Numeric仅设置iOS的键盘.它不限制实际的文本输入 - 即我仍然可以输入非数字字符.我也没有看到限制进入长度的方法.
所以,我一直在尝试在Linux中访问键盘输入.具体来说,我需要能够访问修改键按下而不按下其他键.此外,我希望能够在没有运行X系统的情况下执行此操作.
所以,简而言之,我的要求是:
0 = not pressed,1 = currently pressed让我知道在检查键盘时是否按下了键我正常的Linux机器在我的新公寓的卡车上; 所以,我现在只有Macbook Air可以使用.因此,我在VM中运行Linux来测试它.
VirtualBox中的虚拟机
以下所有内容都是在这种环境下完成的.我已经尝试过使用X运行和其他一个ttys.
如果有人可以纠正我,我会改变这个.
我已经做了一些阅读,意识到更高级别的库不提供这种功能.修饰符键与其他键一起使用以提供备用键代码.通过Linux中的高级库访问修饰键本身并不容易.或者说,我还没有在Linux上找到高级API.
我认为libtermkey就是答案,但它似乎不支持Shift修饰键,比普通键击检索更好.我也不确定它是否可以在没有X的情况下工作.
在使用libtermkey时(在我意识到它没有像Shift-Return这样的情况下发生转变之前),我正计划编写一个可以运行以收集键盘事件的守护进程.运行守护程序的副本只会管理键盘数据请求并接收键盘数据作为响应.我可以使用此设置在后台运行某些内容,以防我无法在特定时间检查密钥代码状态(必须在发生时接收密钥代码).
下面是我尝试编写一个可以从Linux键盘设备读取的程序.我还包括我的小支票,以确保我有合适的设备.
我试图直接访问键盘设备,但遇到了问题.我在这里尝试了另一个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) Update 12/21:
7u10 was recently released. Confirmed that:
Update 11/7:
And we have a workaround!
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 …
我知道,为了处理输入字段中的键盘事件,您可以使用:
$('input').keyup(function(e){
var code = e.keyCode // and 13 is the keyCode for Enter
});
Run Code Online (Sandbox Code Playgroud)
但是,现在,我有一些div和li元素,我没有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)
但问题是,它不起作用.我该怎么办?
keyboard-events ×10
javascript ×3
c# ×2
jquery ×2
autohotkey ×1
c ×1
fullscreen ×1
iphone ×1
java ×1
keyboard ×1
keydown ×1
keylogger ×1
linux ×1
macos ×1
modifier-key ×1
objective-c ×1
python ×1
swing ×1
textinput ×1
uisearchbar ×1