【发布时间】:2017-10-03 11:05:35
【问题描述】:
我正在尝试为我的 mac 应用程序检测系统范围的键盘输入。为此,我使用以下代码:
[NSEvent addGlobalMonitorForEventsMatchingMask:NSEventMaskKeyDown
handler:^(NSEvent *event) {
NSString *eventChars = [event characters];
unichar keyChar = [eventChars characterAtIndex:0];
NSLog(@"keyboard char is %c",keyChar);
}];
虽然这可以完美运行并跟踪在 Safari 上任何地方输入的键盘输入,但只有当用户尝试在任何网页中输入密码时,处理程序才会被触发(例如:facebook 登录页面中的密码框,任何带有密码框的登录页面) .虽然可以跟踪用户名输入,但不能跟踪密码输入。
这是预期的行为还是我错过了什么,因为这与 Chrome 完美配合。在谷歌浏览器的情况下,所有键盘输入都可以通过全局监视器进行跟踪。但只有在 Safari 中这种特殊情况才会失败。
【问题讨论】:
标签: objective-c macos cocoa safari