首页 > 解决方案 > 在 NSOutlineView 中编辑文本,如 Finder

问题描述

如果您在 Finder 中重命名文件,文本字段会水平扩展至大约列的宽度。然后它在滚动之前垂直扩展为三行。我假设这必须在大纲视图之外的文本字段中完成。我可以在输入时调整文本字段的大小。我只是不知道如何在必要时将其放置在大纲视图上。如果大纲视图滚动,请将其固定在行上。有没有人有任何见解?谢谢!

标签: cocoansoutlineview

解决方案


文本编辑由专门的人员处理,NSText称为“字段编辑器”。这个共享的单一视图用于窗口中发生的所有文本编辑。它与通常显示文本的内容分开(不编辑时)。

以下是文档: https ://developer.apple.com/documentation/appkit/nswindow/1419647-fieldeditor

如文档讨论部分所述,您可以使用和自定义另一个字段编辑器。这应该是您的任务的起点。

窗口的委托可以通过实现 windowWillReturnFieldEditor(_:to:) 替换自定义字段编辑器来代替窗口的字段编辑器。自定义字段编辑器可以成为默认编辑器(所有文本显示对象通用)或特定于特定文本显示对象(对象)。

NSControldocs 也有一个关于字段编辑器的部分可能会有所帮助。


推荐阅读