我的设置是
我的nib文件包含一个带有NSOutlineView的NSpanel。
大纲视图通过绑定和NSTreeController填充,我有NSOutlineView子类,我有一些委托和拖放方法。
我的问题
我正在尝试实现委托方法
- (void)textDidEndEditing:(NSNotification *)aNotification
我可以编辑NSOutlineview中的任何项目,一旦我点击“return”调用了委托方法,但窗口不再有效。并且项目处于“编辑模式”我必须单击编辑项目上方或下方的项目以终止编辑模式。我加入了几张图片来说明
目前除了NSlog之外,我在textdidendediting中没有任何内容,看它是否被调用。如果我删除它按预期执行的方法,编辑完成,窗口仍然有效。
编辑项目
一旦我点击“返回”窗口失去焦点,项目仍然处于编辑模式。
答案 0 :(得分:1)
如果覆盖NSOutlineView的textDidEndEditing:
正在更改tableview的行为,请尝试添加对-[super textDidEndEditing:]
的调用。
这里发生的是NSOutlineView
(或其中一个超级类)正在textDidEndEditing:
中执行一些重要的事情,并且通过在子类中重写该方法,父类的方法永远不会被叫。