cocoa - 如何捕获 NSComboBox 中的 NSTextView 何时获得第一响应者状态

标签 cocoa nstextview first-responder nscombobox

当 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/

相关文章:

swift - 鼠标按下行为的第一响应者 NSControl 和 NSView

ios - 无法刷新 UITableView 内的图片

swift - 快速处理段落

cocoa - NSTextView 中的硬包装

cocoa - 不可编辑的 NSTextView 可以使用 setAutomaticLinkDetectionEnabled 突出显示链接吗?

NSPoupupButton的Swift子类,如何在子类内获取 Action (IBAction)

objective-c - 为什么 NSTextView 不能用于弱引用?

objective-c - iOS 5 不使用default-568@2x.png 的屏幕尺寸

objective-c - 改变 NSImage 的颜色空间

objective-c - UIResponder 类和第一响应者角色