问题标签 [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.
objective-c - 注册一个不支持辅助设备的全局热键
使用此代码,我可以注册一个全局事件处理程序:
不幸的是,如果启用了对辅助设备的支持,事件就会传递到此监视器。如果没有启用辅助设备,则不会传递任何事件。
形成文档:
我想知道是否存在另一种方法,它传递事件而不强制用户启用 OS X 的特定功能。
虽然我在 Apple 的文档中没有找到解决方案,但必须存在解决方案。例如,MAS 下载的 Alfred 版本允许定义热键。
有趣的是,Alfred 的偏好只显示特殊键,并指出某些特殊键组合可能不起作用。
由于我基本上想显示/隐藏一个“全局”非激活面板,我可能应该简单地准备一个系统服务。我是不是该?
objective-c - 修改器标志的 NSEvent 全局事件监控返回混合结果
关于修改器标志更改的全局监控出现了一个特殊问题。
假设监视器如下...
最初,当按下左命令时,日志提供以下内容:
[NSEvent modifierFlags] 是 1048576,[event modifierFlags] 是 1048840
并在释放左命令后:
[NSEvent modifierFlags] 为 0,[event modifierFlags] 为 256
现在,在我使用标题栏区域上的三指按住移动 MacBook 上的窗口后,同一显示器的以下结果:
[NSEvent modifierFlags] 是 1048576,[event modifierFlags] 是 1048584
并在释放左命令后:[NSEvent modifierFlags] is 0 and [event modifierFlags] is 0
问题:
为什么 [event modifierFlags] 返回不同的值,特别是 256 时没有持有修饰符?
为什么三指窗口移动手势导致[event modifierFlags]改变-256?
我认为它可能与大写锁定有关,但我不确定为什么 class 和 ivar modifierFlags 返回不同的结果。
我在 10.7.3。
macos - 全局快捷方式工作但系统播放错误声音
我使用以下代码创建全局快捷方式:
此代码完美运行,但是当某些应用程序具有焦点时(例如 Xcode、AppStore...),系统会播放错误声音。怎么修?谢谢。
objective-c - (BOOL)windowShouldClose:(id)sender 在我设置为主菜单窗口的内容视图时不起作用
我将 NSViewController 的视图设置为主菜单窗口的内容视图,现在我应该如何使用 - (BOOL)windowShouldClose:(id)sender ?
我<NSWindowDelegate>
在@interface 中使用并穿上- (BOOL)windowShouldClose:(id)sender
.m 但不起作用
objective-c - 如何将 fieldEditor 移动到选定位置?
当我尝试使用字段编辑器编辑列-(void)editColumn:(NSInteger)column row:(NSInteger)row withEvent:(NSEvent *)theEvent select:(BOOL)select
时,NSTableView
总是出现在开头。NSTextField
我为文本插入了一些制表符空格。我想将字段编辑器(光标)移动到文本的开头。有什么提示可以做到这一点吗?
objective-c - 如何在我从其中一个控件的子类中对其放置控件的视图中使用方法
我将一个 NSTextField 子类化,并在子类中使用一个事件方法(keyUp),当用户按下 Enter 键时,我想在主视图中调用一个方法(我将 NSTextFiled 放在上面)。我使用下面的代码,但不知道如何调用主视图中的具体方法
objective-c - 有没有办法区分按下的左右 Shift 键?
我可以识别用户何时使用以下代码按下任何 Shift 键:
但是有什么方法可以区分按下的是右Shift键还是左Shift键?
macos - 如何发布 NSSystemDefined NSEvent
我创建了一个NSEvent
,我想发布它。我怎样才能做到这一点?
它是一种NSSystemDefined
类型,我想在全球范围内发布它。基本上是一些IOHIDPostEvent
或CGEventPost
等价的。
cocoa - NSEventPhaseEnded 未使用 IKImageBrowserView 在 NSScrollView 上调用
我在 NSScrollView 中嵌入了一个 IKImageBrowserView,为了帮助测试这个问题,IKImageBrowserView 只填充了 NSScrollView 宽度的一半。
我的 NSScrollView 子类实现了以下方法并在滚动视图上滚动开始和结束时记录。
NSEventPhaseBegan 事件阶段在您开始滚动时成功调用光标是否在 IKImageBrowserView 上。这是预期的行为。
但是当您停止滚动时,当光标位于 IKImageBrowserView 上方时,不会调用 NSEventPhaseEnded 事件阶段。如果光标不在 IKImageBrowserView 上,则 NSEventPhaseEnded 会被调用。
为什么 IKImageBrowserView 阻止在我的 NSScrollView 上调用 NSEventPhaseEnded?
objective-c - 如何停止监听 NSEvents?
我在监听事件时遇到问题,我可以监听完美运行的事件,但是我不能让它停止监听事件。我研究了一段时间,想出了一个方法,+ (void)removeMonitor:(id)eventMonitor,它说当我完成监听器时应该使用
但是当我尝试使用该方法时,就像这样
我不断收到“-[NSEvent invalidate]:无法识别的选择器发送到实例”的错误,我也对此进行了研究,我相信这意味着我正在覆盖正在使用的内存。但是我不知道如何解决这个问题。非常感谢任何建议或帮助!
更新感谢 JWWalker、Samir 和 Abizern,它现在可以工作了
.h 文件
.m 文件