Вставка строки nsmutableattributed в общедоступный монтажный щит теряет атрибуты на страницах
Я создаю автономный сервис Mac, который помещает атрибутивные строки на монтажную панель. Когда к данным обращаются по страницам, строка теряет свои атрибуты. Я использую следующий код для вставки строки со значением NSReturnTypes, установленным в NSStringPboardType.
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"Yay, I'm a string"];
[str beginEditing];
[str addAttribute:NSUnderlineStyleAttributeName
value:[NSNumber numberWithInt:NSUnderlineByWord]
range:NSMakeRange(0,str.length)];
[str endEditing];
[pboard clearContents];
[pboard writeObjects:[NSArray arrayWithObject:str]];
Приложения не iWork, такие как заметки и почта, могут обрабатывать атрибуты очень хорошо, но страницы настаивают на их удалении. Как я могу создать данные из картона, которые могут быть обработаны по страницам, ключевым словам и номерам?
ОБНОВЛЕНИЕ: по- видимому, iWork применяет текущий стиль до первой новой строки текста, которая вставляется поверх уже существующего текста в документе. Я предполагаю, что стили абзаца стоят за этим, но был бы признателен за любую помощь здесь.
ОБНОВЛЕНИЕ 2: Кажется, это ошибка в том, как страницы принимают данные из буфера обмена.
2 ответа
Кажется, это ошибка в Pages, или предполагаемое поведение. https://discussions.apple.com/message/30971829?ac_cid=op123456
Никто еще ничего вам не предлагал, так что вот подход, а не ответ как таковой:
Я предполагаю, что стили абзаца стоят за этим, но был бы признателен за любую помощь здесь.
Не предполагайте, тестируйте.
Напишите простое приложение, которое позволит вам изучить, что находится в буфере обмена. Затем откройте TextEdit & Pages и скопируйте и вставьте вещи как внутри, так и между приложениями. Посмотрите, что находится в буфере обмена. Страницы вставляют определенное количество "совпадающего стиля", даже если "Вставить и сопоставить стиль" не выбраны.
Обратите внимание, что эта проблема не ограничивается вашим приложением, как вы увидите при копировании из TextEdit (или Word et al) в Pages. Ваша цель состоит в том, чтобы скопировать и вставить копии страниц на страницы, это может быть или не быть возможным.
добавление
Если вам нужна помощь с просмотром буфера обмена, у Apple есть пример кода для этого, ClipboardViewer. Просто сравните подчеркнутое слово при копировании из TextEdit и Pages. Довольно много различий, включая специфические типы данных iWork.
НТН