NSTextView:复制列表项不包括粘贴时的列表格式

时间:2018-11-20 08:50:46

标签: cocoa copy-paste nsattributedstring nstextview nstextstorage

我有一个基本的Mac应用,其库存为NSTextView(Interface Builder中的“ Rich Document Content Text View”),但是我在TextEdit中也观察到了此行为:

  1. 创建包含3个项目的新项目符号列表
  2. 选择并复制单个列表项
  3. 将列表项粘贴到同一文档中

→粘贴的项目将失去其列表格式,即当我最后按回车键时,不会自动添加新的列表项目。

→当我选择两个或多个列表项时,它可以正常工作。

这是一个快速视频:

NSTextView pasting a list item

其他观察结果

我在Scrivener(我相信也使用NSTextView)中测试了相同的过程,在这里复制单个列表项会将正确的格式设置列表属性放在剪贴板上。

我检查了剪贴板,当我复制一个列表项时,确实,RTF内容与Scrivener有所不同。

NSTextView(已复制一项)

\f0\fs36 \cf0   \'95    Regular list item}

Svenvener(复制一项)

\f0\fs32 \cf0 {\listtext    \uc0\u8226  }Regular list item}

请注意Scrivener如何在剪贴板上放置正确的格式。

NSTextView(已复制两个项目)

\f0\fs36 \cf0 {\listtext    \uc0\u8226  }Regular list item\
{\listtext  \uc0\u8226  }Another list item}

复制两个列表项时,它可以正常工作。

我想念什么?还是这是一个错误/功能,Scrivener的人们正在他们的应用程序中解决此问题(例如,检测何时复制单个列表项并修复其属性)?

1 个答案:

答案 0 :(得分:0)

这是一个“功能”。

尝试将光标放在行首(而不是行尾),然后向下拖动以选择该行,然后复制,粘贴-您将在粘贴末尾得到返回,但是如果返回到粘贴行的末尾,然后按回车键,您将获得列表格式。

“段落”的格式设置详细信息附加在换行符上,并且在复制文本时也包括选择开始处的格式设置信息。

source of TextEdit is available from Apple的链接版本已有数年历史,并且它是Apple的文档档案,您可能会在Apple提供的新的“经过改进”的文档中找到更新的版本,否则可能会失去理智的;-(。如果阅读该书,您可以了解如何处理文本系统的这些功能/问题。

HTH