- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经开始监听全局 keyDown
事件。有没有办法获取该事件来自哪个应用程序的信息?
处理程序接收 NSNotification
实例,而 NSEvent
是其中的一部分。我可以以某种方式从这些对象中提取该信息吗?
听力片段:
[NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask handler:^(NSEvent *event){
NSLog(@"global keyDown %@", event);
[[NSNotificationCenter defaultCenter] postNotificationName:kKeyPressed
object:event];
}];
观察者:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyEventHandler:)
name:kKeyPressed
object:nil];
更新
全局按键不会从任何特定应用程序发送。我实际需要的是在事件处理程序中检查当前事件应用程序:
[[NSWorkspace sharedWorkspace] activeApplication]
这会返回带有我需要的信息的NSDictionary
。
最佳答案
您没有发布分布式通知,也没有使用分布式通知中心。这意味着您知道通知来自当前应用程序。
同时,您自己生成通知,因此如果您确实需要了解该应用程序,只需将其添加进去即可。
最后,您嵌入的事件是全局关键事件,没有关联的应用程序。除特殊情况外,它们不是由任何应用程序生成的,而是由用户在键盘上键入生成的。
关于objective-c - 有没有办法识别 NSNotification/NSEvent 来自哪个应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13280387/
如何区分事件 -(void)scrollWheel:(NSEvent *)event 是由 Magic Mouse 还是触控板触发的? 我问这个问题的原因是因为我想在使用触控板时为滚动事件分配不同的操
我正在尝试使用 NSEvent 和鼠标单击来触发基本功能。例如,按下鼠标左键时关闭窗口。在这个方法中我还需要什么? 谢谢。 - (void)mouseDown:(NSEvent *)theEvent
在 Mac OS X 10.6 中,NSEvent 有一个 +modifierFlags 类方法来确定当前按下的修饰符标志。在 10.5 中,使用 [[NSApp currentEvent] modi
我正在尝试创建鼠标按下事件,但在“override func mouseDown( theEvent: NSEvent!) { ”行中不断收到错误“使用未声明的类型‘NSEvent’”。在研究和尝试不
感谢您花时间阅读本文。我是 JavaFX 的新手,在我的编译器中有一个奇怪的错误,我想了解一下。 这是错误: 2018-09-13 19:09:36.387 java[8040:660455] unr
下面是我的简单 AppDelegate.swift 类。 // AppDelegate.swift import Cocoa @NSApplicationMain class AppDelegate
我正在编写一个简单的 Mac 应用程序,旨在在用户单击鼠标按钮时在后台运行并执行某些操作。该应用程序是使用 PyObjC 用 Python 编写的。我正在使用 addGlobalMonitorForE
当我按 ^ 或 `,然后按 a 或 e 时,我只得到 a 或 e 而不是 â 或 é。 这是我的代码: - (void) keyDown:(NSEvent*)event { NSString* s
我创建了一个 NSEvent 并且我想发布它。我怎样才能做到这一点? 它是一个 NSSystemDefined 类型,我想将其发布到全局范围内。基本上是一些 IOHIDPostEvent 或 CGEv
在 Cocoa 中,您可以重写某些类中的 keyDown(event:NSEvent) 方法,以便在用户按下某个键时收到通知。在大多数情况下,事件将包含按键代码和按下的字符等。但是,如果您在美式扩展键
好的,我了解如何从 NSEvent 确定是否按下了修饰键: if ([theEvent modifierFlags] & NSAlternateKeyMask) { // The Op
问候语:Instruments 告诉我 viewDidLoad 中的两个 addLocalMonitor 调用存在内存泄漏(每个 3 字节)。我很高兴看到我的错误以及为什么(可能)泄漏。非常感谢任何帮
我使用以下代码处理键盘上字母键的按下。 NSEvent.addGlobalMonitorForEvents(matching: NSEvent.EventTypeMask.keyDown) { eve
我创建了一个 NSTrackingArea 并在 userInfo 参数中传递了一个字典。 let trackingData = ["section": 1, "sectionRow": 12, "d
我在监听事件时遇到问题,我可以监听完美运行的事件,但我无法让它停止监听事件。我研究了一段时间,想出了一个方法,+ (void)removeMonitor:(id)eventMonitor,它说我应该在
我正在尝试以编程方式在 cocoa 应用程序中为我的用户按住选项键。 在我的一生中,我似乎无法捕获 NSEVENT 修改它并重新发布它。我仍然想捕获 MouseDown 事件,因为我使用该位置 - 我
@property(readonly) NSTimeInterval timestamp; 表示自系统启动以来事件发生的时间(以秒为单位)。我想比较两个事件的时间戳,但它们的差异也可能以毫秒为单位。那
您好,我正在创建一个 os x 应用程序,并尝试为其添加远程接口(interface)。为此,我需要能够将鼠标向下和鼠标向上命令发送到我的应用程序的窗口。 我找到了可以成功执行此操作的代码,如下所示:
我想使用 NSPropertyListSerialization 编码 NSEvent,但 NSPropertyListSerialization 只接受 NSData、NSString、NSArra
我的应用程序使用事件点击来捕获键盘事件,我想知道每个事件来自哪个设备(即哪个键盘)。是否存在某种设备识别信息以及点击获取的 CGEvent?我查看了 NSEvent 的方法和各种 CGEventFie
我是一名优秀的程序员,十分优秀!