问题标签 [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 - 在 Cocoa OSX 中捕获双击
NSResponder 似乎没有鼠标双击事件。有没有一种简单的方法来捕捉双击?
cocoa - 寻找一种更好的方法来激活和停用我的 GUI(Cocoa OSX)中文本字段的背景
我有一个包含可选组的小型 gui 应用程序,每个组都有一个显示按钮来显示其子组、图像和文本字段。当您编辑文本字段并选择另一个组或另一个文本字段时,我想结束对旧文本字段的编辑。另外,我只希望在编辑文本字段时显示其背景。
我试图通过添加调用来激活 becomeFirstResponder 中的背景并在 textDidEndEditting 中停用来完成此操作。我最终在 textDidEndEditting 而不是 resignFirstResponder 中调用了 deactivate,因为似乎当我选择 textField 时,它在 becomeFirstResponder 之后立即调用 resignFirstResponder。我想知道这是正常行为还是我的代码存在其他问题的迹象?如果这是正常行为,是否有更好的地方可以调用停用该背景,因为在 textDidEndEditting 中有问题。
cocoa - What is the usage of NSResponder's indent:?
NSResponder has a method you override called - indent:, but unsure when it would normally be activated.
objective-c - 使用 NSResponder -interpretKeyEvents: 时 moveBackward: 和 moveLeft: 有什么区别?
我正在使用 -interpretKeyEvents: 实现一个自定义文本框,并试图找出 moveBackward: vs moveLeft: 和 moveForward: vs moveRight: 之间的区别。moveLeft: 绑定到左箭头,moveBackward: 绑定到 Ctrl + B。文档对它们的描述几乎相同,并且它们在实践中的行为似乎相同。
我假设这只是 Vim 的保留?有谁知道真正的区别是什么?应该 moveBackward: 只需调用我的 moveLeft: 实现吗?
非常感谢,
缺口
objective-c - 如何检查响应者链?
我正在使用基于文档的体系结构在单个窗口中做一些疯狂的多个文档,我已经完成了 95%。
我有这个两层文档架构,其中父文档打开并配置窗口,提供“子”文档列表。当用户选择其中一个孩子时,该文档将使用相同的窗口控制器打开,并将 aNSTextView
放置在窗口中。更改窗口控制器的文档关联,以便“编辑的点”和窗口标题跟踪当前选定的文档。想想一个 Xcode 项目,以及当您在其中编辑不同文件时会发生什么。
为了将代码置于伪形式,当打开子文档时,在父文档中调用这样的方法。
这行得通,而且我知道窗口控制器在任何给定时间都具有正确的文档关联,因为更改点和标题跟随我正在编辑的任何文档。
但是,当我点击保存时,(CMD+S 或文件 -> 保存/另存为)它想要保存父文档,而不是当前文档(如[[NSDocumentController sharedDocumentController] currentDocument]
窗口标题和更改点所报告和指示的那样)。
通过阅读NSResponder
文档,似乎链条应该是这样的:
当前视图 -> 超级视图(重复) -> 窗口 -> WindowController -> 文档 -> DocumentController -> 应用程序。
我不确定基于文档的体系结构是如何设置响应者链的(即它是如何放置NSDocument
和NSDocumentController
进入链的),所以我想调试它,但我不确定在哪里看。如何在任何给定时间访问响应者链?
cocoa - 在其他视图上拖动时未释放 MouseDragged
我有 NSView 的 2 个子类,它们是公共超级视图的子视图。它们不重叠,它们都拦截鼠标拖动的呼叫。当我从一个子类拖动到另一个时,将调用 mousedragged 函数,直到我释放鼠标按钮,即使我在整个屏幕上拖动也是如此。我虽然默认行为是仅当鼠标超出接收器边界时才调用 mousedragged 函数。我还使用 NSTrackingArea 进行鼠标进入、退出和移动事件,但从我一直在阅读的内容来看,不涉及拖动事件
谢谢你的时间,何塞。
objective-c - NSView - 快速查看和 NSResponder
我已将 NSView (MyCustomView) 子类化,并使用 MainMenu.xib 中的自定义视图对象将其添加到 InterfaceBuilder 中我的 NSWindow 的内容视图中。
我已经添加了代码来接受对 MyCustomView 的快速查看响应。
调用后:
它要求显示快速查看窗口,显然 QLPreviewPanel 会通过响应程序链寻找任何响应 -(BOOL)acceptsPreviewPanelControl: 的内容,以便执行所需的操作。MyCustomView 似乎没有响应,尽管具有快速查看功能的相关方法,包括上述方法。
我尝试将以下内容添加到 MyCustomView 的 init 方法中,但没有区别:
有什么我想念的想法吗?我认为这与我的 xib 设置有关?
cocoa - 在没有关键窗口状态的 NSPanel 第一响应者中制作 NSView
是否可以在 NSPanel 第一响应者状态中提供 NSView 而不提供 NSPanel 键窗口状态(使主应用程序窗口辞职键)?
谢谢。
objective-c - 替换现有 NSView 的 NSResponder
I have a view in an drawing application, it needs to respond in an other way when an other tool is selected. 我认为替换该视图的 NSResonder 会好得多,而不是设置视图的每个响应者方法调用新的响应者方法。这可能吗,还有其他不错的解决方案吗?
objective-c - -makeFirstResponder:用法
我对可可编程相当陌生,我想问是否有人可以向我解释该
-(BOOL)makeFirstResponder:(NSResponder *)responder;
方法的工作原理。我打算使用它,NSEvent
但谁能告诉我如何实现它?
我正在尝试使用该NSResponder
课程为我提供一种工作-keyDown
方法。