编辑NSOutlineView项后使用委托

时间:2013-11-26 00:43:10

标签: objective-c cocoa nsoutlineview

我的设置是

我的nib文件包含一个带有NSOutlineView的NSpanel。

大纲视图通过绑定和NSTreeController填充,我有NSOutlineView子类,我有一些委托和拖放方法。

我的问题

我正在尝试实现委托方法

- (void)textDidEndEditing:(NSNotification *)aNotification

我可以编辑NSOutlineview中的任何项目,一旦我点击“return”调用了委托方法,但窗口不再有效。并且项目处于“编辑模式”我必须单击编辑项目上方或下方的项目以终止编辑模式。我加入了几张图片来说明

目前除了NSlog之外,我在textdidendediting中没有任何内容,看它是否被调用。如果我删除它按预期执行的方法,编辑完成,窗口仍然有效。

编辑项目

Editing item

一旦我点击“返回”窗口失去焦点,项目仍然处于编辑模式。

Hit enter

1 个答案:

答案 0 :(得分:1)

如果覆盖NSOutlineView的textDidEndEditing:正在更改tableview的行为,请尝试添加对-[super textDidEndEditing:]的调用。

这里发生的是NSOutlineView(或其中一个超级类)正在textDidEndEditing:中执行一些重要的事情,并且通过在子类中重写该方法,父类的方法永远不会被叫。