Какао RTF: NSData против NSAttributedString?

Моему приложению Cocoa необходимо создавать документы с использованием RTF. После долгих поисков я еще не нашел родной для Cocoa способ предоставления нижних колонтитулов в документе RTF. По этой причине кажется, что мне нужно сгенерировать код RTF, а не просто сохранить NSAttributedString в формате RTF.

Допустим, я создаю код RTF, такой как:

....\pgnstart1 {\fs24\scaps\b\qc Table 1\par\ql\fs18 \par....

Должен ли я изначально хранить его в объекте NSData или в объекте NSAttributedString перед сохранением на диск?

Заранее всем спасибо за любую информацию.


person VikR    schedule 15.01.2014    source источник
comment
Вы нашли методы RTF в Дополнения NSAttributedString AppKit? Вы можете создавать/генерировать RTF в/из NSAttributedStrings. Что вы пробовали до сих пор?   -  person Daniel Farrell    schedule 15.01.2014
comment
@boyfarell, он говорит, что ему нужно сгенерировать его, чтобы у него были нижние колонтитулы. Я тоже не совсем понимаю вопрос   -  person Daij-Djan    schedule 15.01.2014


Ответы (1)


Я не думаю, что подмножество Cocoa для чтения/записи RTF поддерживает нижние колонтитулы. Вам придется создавать их самостоятельно, но добавить их в поток RTF будет непросто. Если у вас есть синтаксический анализатор RTF, вам придется постобработать необработанный RTF, полученный от NSAttributedString, чтобы вставить свой собственный RTF.

Не смешно. Синтаксический анализатор RTF никогда не задумывался как расширяемый.

person Wil Shipley    schedule 15.01.2014
comment
К счастью, я портирую приложение, которое уже умеет создавать нужный мне RTF-код. (Было действительно много работы, чтобы написать это). - person VikR; 15.01.2014
comment
(К сожалению, время ожидания истекло во время редактирования.) Я могу легко записать необходимый RTF-код непосредственно в текстовый файл на диске. Может быть полезно использовать NSAttributedStrings для [вычисления высоты текста][1]. Если это так, мне нужно преобразовать мой RTF-код в форму NSAttributedString. Я предполагаю, что мне нужно 1) получить мой поток необработанного кода rtf в объект NSData, а затем 2) использовать initWithRTF:documentAttributes: чтобы получить это в NSAttributedString. Это кажется запутанным. :) Но будет ли это правильным подходом? [1]:sheepsystems.com/sourceCode/sourceStringGeometrics.html - person VikR; 15.01.2014
comment
Да, именно такой подход я бы использовал. - person Wil Shipley; 16.01.2014
comment
Большое спасибо, Уилл. - person VikR; 16.01.2014