我有一个NSTableView(基于视图),其代理(在这种情况下我的windowcontroller)需要在文本编辑会话启动时尽早得到通知。 我尝试过使用Text Delegate方法
- (BOOL)control:(NSControl *)control textShouldBeginEditing:(NSText *)fieldEditor;
但这不符合我的情况。 当且仅当我点击键盘中的某个键时,才会触发事件(并调用委托)。 如果我在任何情况下点击控件外部而没有输入任何内容,编辑会话会默默地停止而不会通知任何人。 任何帮助表示赞赏。
答案 0 :(得分:0)
@theAmateurProgrammer 谢谢你的建议。那么,你建议只在鼠标事件的情况下做什么。相反,我需要检测开始编辑会话事件始终,例如,在编程触发编辑的情况下。 但是我找到了解决方案。我将表视图子类化,然后覆盖validateProposedFirstResponder方法。 实际上,响应者是即将开始编辑的TextField。