0

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

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

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

我可以做些什么来使点击编辑时自动选择文本?当编辑会话开始时,是否有另一种方法可以通知我,以便我可以手动选择文本?

4

2 回答 2

1

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

class MyTextField: NSTextField {

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

转到情节提要,设置NSTextField控件的类。完毕。在此处输入图像描述

于 2018-04-28T12:21:23.003 回答
0

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

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

希望能帮助到你 !!!

于 2013-01-28T14:36:02.340 回答