问题标签 [nsresponder]
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.
cocoa - NSResponder:覆盖mouseDown:,mouseDragged:,mouseUp:
我很难理解当一个人在 NSView 中覆盖鼠标事件时会发生什么。
在以下示例中,两个方法都由 Cocoa 框架调用:
当我将 [super mouseDown:theEvent] 添加到 mouseDown: 方法时,Cocoa 框架不再调用 mouseDragged: 方法:
为什么是这样?如何调用 Cocoa 框架的标准 mouseDown 行为以便调用 mouseDragged:?
datepicker - 如何允许箭头键操作图形 NSDatePicker?
这看起来很简单,但必不可少。
将 NSDatePicker(样式:图形)放入窗口,构建并运行,然后尝试使用箭头键四处移动。唯一的反应是计算机发出“叮”的一声。
我已经覆盖-keydown
了一个简单的自定义 NSDatePicker 子类并打印了 theEvent 以注意到它们具有从 123 到 126 的对应键码。
然后,我偶然发现在每次按下箭头按钮后重置日期选择器的日期,内部-keydown
,如下所示:
实现此方法的副作用是取消了用于单步执行对象的“制表符”键。
这似乎是一个很大的解决方法。日期选择器中是否已经包含另一种方法?
objective-c - 在 NSView 控制器中获取按键事件
我正在尝试找到一种解决方案,允许我在视图控制器中获取 keydown 事件。我不相信默认情况下视图控制器是响应者链的一部分。
我将不胜感激如何进行此操作的示例。我很难找到我能理解的关于如何将 VC 添加到响应者链并获取事件的文档。
谢谢。
米克
objective-c - 如何将 NSViewController 添加到响应者链中?
我很难理解和查找有关如何使 NSViewController 接受键和鼠标事件的信息。我在某处读到,为了在 NSViewController 中注册这些事件,应该将其添加到响应者链中,但我找不到如何正确执行此操作的答案。
任何形式的帮助都非常感谢!
cocoa - -[NSResponder showContextHelp:] 示例
我对 NSResponder 中的方法 -showContextHelp: 很好奇。
该文档指出:
由子类实现以调用帮助系统,显示与接收器及其当前状态相关的信息。
如何以及何时调用此方法?似乎找不到更多关于它的信息。
cocoa - 如何处理急救人员和 NSPopover
我正在尝试复制 iTunes 中搜索字段的行为,以查找股票代码和名称。具体来说,当您开始在搜索字段中输入时,会出现一个带有过滤项目的弹出框。在大多数情况下,我有这个工作但是我无法复制的是它处理第一响应者的方式
输入三个字符后,我的弹出框出现了。此时 NSSearchField 将失去第一响应者状态,因此我无法继续输入。我想要的行为是能够在弹出窗口出现后继续输入,如果使用箭头键滚动项目,然后继续输入,您将从搜索字段中的最后一个字符继续。
我尝试的是继承 NSTextView(将其用作 NSSearchField 的自定义字段编辑器)并覆盖
通过简单地返回 NO,我可以在弹出框出现后继续输入,但显然我无法选择弹出框中的任何项目。所以我尝试了以下方法,如果发生向下箭头或 mousedown 事件,则返回 YES。
这适用于 mousedown 事件,但不适用于 keydown 事件,此外,当用户继续键入时,这并不能解决问题。
有什么建议么?
cocoa - NSViewController mouseDown:未调用
我有一个 NSWindowController,我在其中添加了相应的 ViewController。我想在其中一个 ViewController 中处理触摸事件。我的课是
窗口.h
窗口.m
我可以在这里打印 mousedown 事件。现在我有一个viewController,它是
视图控制器.h
视图控制器.m
我想在 ViewController 中控制 mouseDown。我在这里错过了什么吗?
谢谢。
cocoa - 检测/检查 NSView (NSResponder) 中的字符序列
要求
我想检测的不是单个而是一系列字符来触发动作,例如当用户在子类中键入“ cat ”时NSView
- 但不是“ c ”。
NSMutableArray
除了在我的方法中输入最后 3 个字符keyDown:
,从该数组中组装字符串(通过NSData
?)并检查该字符串之外,还有什么更聪明的吗?
听起来有点尴尬..但我想不出更简单的方法(或内置功能NSResponder
/ NSView
)
nsbutton - NSButton makeFirstResponder
我有一个带有窗口的简单 Mac 应用程序。在这个窗口中,我有两个NSTextfield
s 和一个NSButton
。
当窗口出现时,第一个NSTextfield
具有焦点。我按下enter,焦点转到第二个NSTextfield
。我enter再次按下,焦点传递到我的按钮。
这工作正常,但现在当我enter再次按下时,我希望按钮被点击,但它不会发生。
cocoa - 可视化第一响应者?
是否有某种 AppKit//NSDocument
调试NSApplication
选项、调试标志或其他第三方扩展来可视化当前应用程序firstResponder
中任何给定NSWindow
实例的电流?
我们正在构建一个单窗口应用程序,它可以动态加载和交换窗口内外的视图,并保持跟踪/调试当前firstResponder
正在成为一件令人头疼的事情。
非常感谢任何提示/做法!