我正在创建一个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将当前样式应用于粘贴在文档中现有文本上的文本的第一个换行符。我假设段落样式在这背后,但在此会感激任何帮助。
UPDATE2:这似乎是页面如何从剪贴板接受数据的错误。
答案 0 :(得分:1)
没有人提供任何东西,所以这里的方法不是答案:
我假设段落样式落后于此,但在此感谢任何帮助。
不要假设,测试。
编写一个简单的应用程序,它允许您检查剪贴板上的内容。然后打开TextEdit&页面和副本&在应用中和应用之间粘贴内容。查看剪贴板上的内容。即使“粘贴和匹配样式”未选择
,页面也会进行一定量的“匹配样式”粘贴。当然注意,此问题不仅限于您的应用,因为您在从TextEdit(或Word 等)复制到Pages时会看到。您的目标似乎是将Pages复制到Pages copy&粘贴,可能会也可能不会。
<强>附录强>
如果您在查看剪贴板时需要帮助,Apple会提供示例代码ClipboardViewer。只需在从TextEdit和Pages复制时比较带下划线的单词。包括iWork特定数据类型在内的一些差异。
HTH
答案 1 :(得分:0)
它似乎是Pages或预期行为中的错误。 https://discussions.apple.com/message/30971829?ac_cid=op123456#30971829