问题标签 [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 投票
4 回答
4979 浏览

cocoa - Mac Cocoa:如何区分 NSScrollWheel 事件是来自鼠标还是触控板?

在我的应用程序中,我希望滚动发生,仅通过鼠标滚轮操作,而不是通过触控板上的两个手指手势。基本上,我试图确定 scrollWheelEvent 是否是从鼠标或触控板内部生成的 - (void)scrollWheel:(NSEvent *)theEvent 方法。据我目前所知,似乎没有直接的方法来实现这一点。

我尝试了在 -(void)beginGestureWithEvent:(NSEvent *)event; 内将布尔变量设置为 true 和 false 的解决方法;和 -(void)endGestureWithEvent:(NSEvent *)event; 但这不是解决方案,因为在调用 endGestureWithEvent: 方法之后,scrollWheel: 方法被多次调用。

这是我的代码:

我知道这是不标准的,但这是我的要求。有谁知道这样做的方法?谢谢!

0 投票
1 回答
606 浏览

objective-c - 山狮中没有调用键盘事件

我想在我的应用程序中接收任何键盘事件的通知,applitionDidFinishLaunching 方法中的以下代码在 lion 上运行良好,但在山狮上没有被调用。

我收到鼠标移动事件,但不适用于键盘事件。

0 投票
1 回答
1413 浏览

cocoa - 单击 NSControl 时未调用 mouseDown 事件,甚至在子类 NSView 上也未调用

如何让当前的 NSControl 点击 NSWindow?我在 NSWindowController 上有一个鼠标按下事件,
-(void)mouseDown:(NSEvent *)theEvent {
但是当我在放置在 NSWindow 上的 NSControls 内单击时,我根本没有调用鼠标按下事件。
我什至将 NSControls 子类化为自定义 NSViews,但是在内部单击时我也没有收到他们的鼠标按下事件。我添加 setAcceptsTouchEvents了是并调用了acceptsFirstResponder,但它没有帮助。令人惊讶的是,当我单击 NSWindow 而不是任何 NSControls 时,我得到了 mousedown 事件。
我在这里做错了什么?

0 投票
1 回答
672 浏览

objective-c - NSEvent commandKey 未检测到

我正在尝试检测是否按下了命令键,并且我一生都无法弄清楚以下内容有什么问题。我重写了一个视图以提供以下代码:

每当我按下命令键时,我都会看到“标志已更改”消息,但看不到“命令键输入”消息。我错过了什么?

0 投票
2 回答
595 浏览

objective-c - 如何在自定义 NSView 上用 3 个手指(NSEvent)捕捉 1 个水龙头?

我必须按照代码mouseDown在我的自定义上捕获 sNSView但我认为这只会捕获多少次点击(使用clickCount),而不是使用多少个手指来点击:

关于如何在我的自定义 NSView 上用 3 个手指捕捉 1 个水龙头的任何想法?我想重现类似 Finder.app 选项的内容,您可以在其中用 3 根手指点击文件,然后会显示 QuickLook 面板。
谢谢!

0 投票
1 回答
2254 浏览

cocoa - 在可可应用程序中检测 Enter/Return 键的最佳方法?

在我的可可应用程序中,我需要检查输入/返回键。为此我使用了下面的代码

有人可以建议这是正确的方法吗?提前致谢 :)

0 投票
2 回答
1369 浏览

objective-c - 如何专门捕获修饰键?

当使用 NSEvent flagsChanged 并使用各种 KeyMask 对标志进行 AND 运算时,您如何以独家方式测试它们?目前,在模式中使用一系列 if else 条件:

即使第三个修饰键被按下,这也会匹配。在 if else 条件句中较早地放置较长系列的关键掩码会使行为按预期工作,但不知何故感觉不完整。是说“只有这些修饰键,而不是其他任何键”的好方法吗?

这是一个更具体的示例,其中第一个在其他之前匹配。我想知道是否有一种方法可以为每个说“只有这些修饰键”的逻辑添加一些逻辑。

因此,由 Ken Thomases 提供的我正在寻找的正确模式是: flags &= (<one or more masks bitwise OR'd together); if (flags == (<one or more masks bitwise OR'd together)) { // do something }

这给出了排他匹配。

0 投票
1 回答
213 浏览

objective-c - DDHotKey - 跟踪而不取消事件

我正在使用DDHotKey来跟踪一些系统范围的键盘快捷键。当事件被触发时,只有我的应用程序才能交付它。是否可以在不阻止事件传递到其原始目标应用程序的情况下观察它?


以下是此模块注册事件处理程序的方式:

和事件处理程序本身:


0 投票
2 回答
802 浏览

cocoa - 如何接受鼠标单击一部分并让单击其余的 NSWindow

我有下面的子类 NSWindow 代码,有一个可以缩放的动画视图,我想在正确的位置单击它时接受单击,如果它在外部则拒绝(单击)。

下面的代码运行良好,只是窗口不允许点击通过。

0 投票
1 回答
953 浏览

objective-c - 如何找出 keyCode 对应于实际字符还是功能键?

下面是我的代码。但是我怎么知道这个字符是否来自字母表?(任何字母,不仅仅是 az)