NSOutlineView:点击编辑不选择文字

时间:2013-01-26 18:39:36

标签: cocoa nsoutlineview

我有一个基于视图的NSOutlineView,我正在努力使项目可编辑。如果我单击某个项目进行编辑,它将从我单击的插入点开始,而不是选择整个文本。按enter / return进行编辑会选择整个文本。

将我的代码与没有此问题的TableViewPlayground示例进行比较,我无法找到任何显着差异。我发现的唯一区别是样本使用了绑定,但是当我尝试进行更改时,它没有帮助。

我的单元格视图的文本视图将我的视图控制器设置为其委托(我甚至在outlineView:viewForTableColumn:item:中重新设置它以确保),但control:textShouldBeginEditing:永远不会被调用。我想也许我可以从那里选择文字。

我有什么办法可以在点击编辑时自动选择文字吗?还有另一种方法可以在编辑会话开始时收到通知,因此我可以手动选择文本吗?

2 个答案:

答案 0 :(得分:1)

创建一个名为MyTextField的自定义类,扩展NSTextField类。

class MyTextField: NSTextField {

    override func mouseDown(with event: NSEvent) {
        currentEditor()?.selectAll(self)
    }
}

转到故事板,设置NSTextField控件的类。 完成的。enter image description here

答案 1 :(得分:0)

尝试下载apple的示例项目“DragNDropOutlineView”(google it)

在此示例中,几乎可以看到使用大纲视图完成的所有功能(如编辑,拖放,添加节点,删除节点等)。

希望它能帮助!!!