当 NSComboBox 失去第一响应者状态并因此获得“resignFirstResponder”时,我尝试进行一些处理,但是只有当组合框真正失去第一响应者状态时,而不是当内部 NSTextView 用于实现文本时,我的处理才会发生组合框本身获得第一响应者状态。
是否有官方方法来检测第一响应者状态从 NSComboBox 到其内部 NSTextView 的状态? 我可以获得指向 NSTextView 的指针吗?也许可以设置它的委托(delegate)?
问候
最佳答案
事实上,不存在“内部 NSTextView”,每个 NSWindow 都有一个这样的 NSTextView,它会根据需要将其重新设置为编辑控件(文本、组合框),这就是所谓的“字段编辑器”。可以通过 NSWindow 委托(delegate)中的 windowWillReturnFieldEditor
来覆盖它。
实际答案是我们可以检测组合上的becomeFirstResponder
,然后检测textDidEndEditing
。
引用:Apple 开发人员文档中“文本编辑编程指南”中的“使用字段编辑器”。
关于cocoa - 如何捕获 NSComboBox 中的 NSTextView 何时获得第一响应者状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10723448/