NSTableView早期检测编辑会话

时间:2014-10-21 17:15:29

标签: objective-c cocoa nstableview

我有一个NSTableView(基于视图),其代理(在这种情况下我的windowcontroller)需要在文本编辑会话启动时尽早得到通知。 我尝试过使用Text Delegate方法

- (BOOL)control:(NSControl *)control textShouldBeginEditing:(NSText *)fieldEditor;

但这不符合我的情况。 当且仅当我点击键盘中的某个键时,才会触发事件(并调用委托)。 如果我在任何情况下点击控件外部而没有输入任何内容,编辑会话会默默地停止而不会通知任何人。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

@theAmateurProgrammer 谢谢你的建议。那么,你建议只在鼠标事件的情况下做什么。相反,我需要检测开始编辑会话事件始终,例如,在编程触发编辑的情况下。 但是我找到了解决方案。我将表视图子类化,然后覆盖validateProposedFirstResponder方法。 实际上,响应者是即将开始编辑的TextField。