问题标签 [nsevent]

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 回答
288 浏览

objective-c - 在系统级别挂钩 [NSEvent mouseLocation]?

所以我希望能够在系统级别挂钩 [NSEvent mouseLocation],并且基本上让它返回我想要的。

这是由于无法向游戏发送鼠标事件,因为它们会触发 [NSEvent mouseLocation] 以获取鼠标指针的位置。

有人对我可以在哪里闲逛有任何指示吗?

0 投票
1 回答
4673 浏览

objective-c - 在可可中使用箭头键?

我对此做了一些研究,我发现 了这个 问题。我实现了那里使用的代码,但什么也没发生。这是我正在使用的确切代码:

.h 文件

.m 文件

怎么了?有什么我必须添加到界面的吗?

编辑:嗯,确实发生了一些事情。我的电脑对我发出哔哔声。而已。

0 投票
2 回答
1769 浏览

objective-c - CGEvent NSKeyDown 仅在应用程序位于最前面时才有效?

我正在尝试自动化一些任务(没有 AppleScript 支持),所以我必须使用 CGEvents 并发布这些事件。鼠标点击工作正常,但 NSKeyDown(回车)只有在我点击 Dock 中的应用程序时才有效(这使它成为最前面的应用程序).​​.....这是我到目前为止的代码:

我在循环中有 posteventtopsn 的原因是出于测试目的(我只需要它发送一次)。当程序处于循环中时,如果我将我的应用程序激活到最前面,那么该事件可以正常工作。

我究竟做错了什么?如果它在后台有什么方法可以工作吗?谢谢。

0 投票
1 回答
1276 浏览

objective-c - 将 CGEvents 击键发送到后台应用程序

我正在尝试将输入键发送到这样的后台应用程序:

它不起作用,我认为这是因为该应用程序必须是最前面的应用程序才能接收击键?我对吗?如果是这样,无论如何我可以在不先激活应用程序的情况下发送此事件吗?如果没有,那我做错了什么?谢谢。

0 投票
4 回答
9735 浏览

objective-c - 如果按下了某个修饰符但没有其他修饰符,则检查 NSEvent 的修饰符标志

我刚刚尝试了addLocalMonitorForEventsMatchingMask:handler:NSEvent 中的方法并遇到了以下问题:如何确定是否按下了某些修饰符?

将此问题置于上下文中的一个简短示例:我想听快捷键“⌘+W”。因此,我编写了以下代码:

这很好用,但是即使按下了更多修饰键,也会触发快捷方式,例如“⌃+⌘+W”或“⇧+⌃+⌥+⌘+W”。有没有办法绕过这个?

一个简单的解决方案是检查所有其他修饰键并确保它们没有被按下。这似乎很乏味且容易出错 - 除了它现在与一元“&”一样丑陋之外。此外,如果(出于某种原因)在键盘布局中添加了另一个修饰键,您可能会遇到麻烦。

一如既往,我感谢任何建议。

0 投票
5 回答
4280 浏览

cocoa - 如何将滚动事件传递给父 NSScrollView

我需要在更大的滚动窗口内固定大小的 NSTextViews。IB 要求 textviews 位于它们自己的 NSScrollViews 中,即使它们的最小/最大尺寸是固定的,因此它们实际上不会滚动。当在 textview 框架内进行触控板手势时(无论它们是否有焦点),它们会被 textview 的滚动视图捕获,因此不会发生任何事情。

如何告诉文本视图的滚动视图将滚动事件传递到窗口的主滚动视图?(或者我应该问我如何告诉窗口的主滚动视图自己处理这些事件,而不是将它们传递给它的子滚动视图。)

IB结构是这样的:

  • 窗户
    • 窗口的内容视图
      • 窗口的大滚动视图(滚动事件的所需目标)
        • 盒子
          • 单独的 xib 中的可交换内容视图
            • 文本视图的滚动视图
              • 文本视图
而且,是的,当文本视图没有焦点 时,窗口确实可以正确滚动。

0 投票
2 回答
5914 浏览

cocoa - 通过 NSView 流血的鼠标事件

我有一个 NSView 覆盖其父窗口的内容视图。此视图有一个单击事件处理程序,可将其从内容视图中删除。在这个观点中,我有另一个观点。当我在这个内部视图中拖动鼠标时,鼠标事件不仅应用于前面的视图,还应用于后面的视图。此外,来自后面视图的光标也会显示出来。这与这里发生的问题相同:NSView 覆盖将鼠标事件传递给底层子视图?但是那里的答案对我的项目不起作用,因为我无法打开另一个窗口。

0 投票
3 回答
2112 浏览

objective-c - mouseDown 时 mouseEntered 事件被禁用(NSEvents Mac)

我创建了一个 NSButton 类,当滚动我的按钮时,它很高兴地检测到 mouseEntered 和 mouseExited 事件。但是一旦 mouseDown 事件发生,只要鼠标按下,mouseEntered 事件就不再被调用,直到鼠标按钮被抬起。

因此,当调用 mouseDown 事件时,不再调用 mouseEntered 或 MouseExited 事件,也不会在滚动其他按钮时调用 mouseDown,直到我松开初始 mouseDown。

所以我想在鼠标按下时检测我的鼠标何时进入。

0 投票
1 回答
213 浏览

objective-c - device from NSEvent

I have an application that uses a barcode scanner. I want to be able to determine who pressed a key: the keyboard or the barcode scanner. I tried all the methods from the NSEvent, but I didn't find anything.

Thanks

0 投票
3 回答
6441 浏览

objective-c - 接收双击事件

我一直在搜索 Apple 文档,我能找到的唯一与双击有关的函数只是返回了两次单击之间可接受的时间,以便将其视为双击。

有人可以给我看一个双击事件的例子吗?