我有一个基于视图的NSOutlineView,我正在努力使项目可编辑。如果我单击某个项目进行编辑,它将从我单击的插入点开始,而不是选择整个文本。按enter / return进行编辑会选择整个文本。
将我的代码与没有此问题的TableViewPlayground示例进行比较,我无法找到任何显着差异。我发现的唯一区别是样本使用了绑定,但是当我尝试进行更改时,它没有帮助。
我的单元格视图的文本视图将我的视图控制器设置为其委托(我甚至在outlineView:viewForTableColumn:item:
中重新设置它以确保),但control:textShouldBeginEditing:
永远不会被调用。我想也许我可以从那里选择文字。
我有什么办法可以在点击编辑时自动选择文字吗?还有另一种方法可以在编辑会话开始时收到通知,因此我可以手动选择文本吗?
答案 0 :(得分:1)
创建一个名为MyTextField
的自定义类,扩展NSTextField
类。
class MyTextField: NSTextField {
override func mouseDown(with event: NSEvent) {
currentEditor()?.selectAll(self)
}
}
答案 1 :(得分:0)
尝试下载apple的示例项目“DragNDropOutlineView”(google it)
在此示例中,几乎可以看到使用大纲视图完成的所有功能(如编辑,拖放,添加节点,删除节点等)。
希望它能帮助!!!