NSTextView: копирование элемента списка не включает форматирование списка при вставке

У меня есть базовое приложение Mac со стандартным NSTextView ("Текстовое представление расширенного содержимого документа" в Interface Builder), но я также наблюдал такое поведение в TextEdit:

  1. Создайте новый маркированный список из 3 элементов
  2. Выберите и скопируйте один элемент списка
  3. Вставьте элемент списка в тот же документ

→ Вставленный элемент теряет форматирование списка, т. е. когда я нажимаю «Ввод» в конце, новый элемент списка не добавляется автоматически.

→ Когда я выбираю два или более элемента списка, он работает правильно.

Вот короткое видео:

NSTextView вставляет элемент списка

Другие наблюдения

Я протестировал ту же процедуру в Scrivener (который, как мне кажется, также использует NSTextView), и здесь копирование одного элемента списка помещает правильные атрибуты списка форматирования в буфер обмена.

Я проверил буфер обмена, и когда я копирую один элемент списка, действительно, содержимое RTF отличается от Scrivener.

NSTextView (скопирован один элемент):

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

Scrivener (скопирован один элемент):

\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 работают над этим в своем приложении (например, обнаруживают, когда один элемент списка копируется, и исправляют его атрибуты)?


person Mark    schedule 20.11.2018    source источник


Ответы (1)


Это "особенность".

Попробуйте поместить курсор в начало (а не в конец строки) и перетащить вниз, чтобы выбрать строку, скопировать, вставить — вы получите возврат в конце вставки, но если вы сделаете резервную копию до конца вставьте строку и нажмите «Ввод», вы обнаружите, что получили форматирование списка.

Детали форматирования для «абзаца» присоединяются к новым строкам, также при копировании текста включается информация о форматировании для начала выделения.

источник TextEdit доступен в Apple, связанной версии уже несколько лет, и в архиве документации Apple вы можете найти более новую версию в новой «улучшенной» документации, которую Apple предоставляет, или потерять рассудок ;-(. Если вы прочитаете ее, вы сможете узнать, как эти функции/причуды текстовой системы.

ХТН

person CRD    schedule 20.11.2018