2013-11-26 32 views
2

我的设置是编辑后使用委托NSOutlineView项目

我有一个由NSpanel和NSOutlineView组成的nib文件。

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

我的问题

我试图实现委托方法

- (void)textDidEndEditing:(NSNotification *)aNotification 

我可以在NSOutlineview编辑任何项目,有一次我打“回”委托方法被调用,但是窗口不再有效。并且该项目保留在“编辑模式”下,我必须点击编辑项目上方或下方的项目来终止编辑模式。我包括一对夫妇的图像来说明

目前我没有任何文字除了NSlog日志以查看它是否被调用。如果我删除了按预期执行的方法,则编辑完成,窗口仍处于活动状态。

编辑项目

Editing item

有一次,我打的“返回”窗口失去焦点和项目仍处于编辑模式。

Hit enter

+1

你尝试过调用 - [super textDidEndEditing:]? –

+0

@KenAspeslagh这样做!如果您将您的评论更改为答案,我会接受,同时我也希望能够快速解释为什么您必须在此情况下致电超级会员。谢谢 – Cory

回答

1

如果重写NSOutlineView的textDidEndEditing:正在改变tableview中的行为,尝试将调用-[super textDidEndEditing:]

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