【问题标题】:NSOutlineView: click to edit doesn't select textNSOutlineView:点击编辑不选择文本
【发布时间】:2013-01-26 18:39:35
【问题描述】:

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

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

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

我可以做些什么来使点击编辑时自动选择文本?是否有其他方式可以在编辑会话开始时通知我,以便我可以手动选择文本?

【问题讨论】:

  • 代码是here on github,减去设置文本视图的委托,因为这不起作用。

标签: cocoa nsoutlineview


【解决方案1】:

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

class MyTextField: NSTextField {

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

转到情节提要,设置NSTextField 控件的类。 完成。

【讨论】:

    【解决方案2】:

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

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

    希望对你有帮助!!!

    【讨论】:

    • 该示例不是基于视图的,因此对我的情况没有帮助。
    猜你喜欢
    • 2014-11-17
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    相关资源
    最近更新 更多