如何在粘贴板中复制NSAttributedString,以允许用户粘贴或以编程方式粘贴(使用- (void)paste:(id)senderUIResponderStandardEditActions协议).
我试过了:
UIPasteboard *pasteBoard = [UIPasteboard generalPasteboard];
[pasteBoard setValue:attributedString forPasteboardType:(NSString *)kUTTypeRTF];
Run Code Online (Sandbox Code Playgroud)
但这次崩溃:
-[UIPasteboard setValue:forPasteboardType:]: value is not a valid property list type'
Run Code Online (Sandbox Code Playgroud)
这是预期的,因为NSAttributedString不是属性列表值.
如果用户在我的应用中粘贴了粘贴板的内容,我希望保留属性字符串的所有标准和自定义属性.
尝试将多个数据表示放在iPhone 3.0上的粘贴板上时遇到了一些问题.
我要做的是将数据表示和字符串表示放在粘贴板上.数据是我自己的数据类型,我用它来复制和粘贴我的应用程序.字符串表示是一种将我的应用程序内容作为大纲复制并粘贴到其他应用程序(例如Mail.app)的方法.
// payload
NSString *pasteboardString = [selectedNode stringRepresentation];
NSDictionary *pasteboardDictionary = [selectedNode nodeAndSubnodesProperties];
// set payload
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
pasteboard.string = pasteboardString;
[pasteboard setValue:pasteboardDictionary forPasteboardType:MNTNodesPasteboardType];
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用,因为string属性和setValue:forPasteboardType:methode替换了粘贴板上的第一个表示.我尝试了addItems:但它对我不起作用.
感谢您的任何帮助!
我试图找到一种方法来UIPasteBoard将HTML字符串复制到粘贴板中,并能够将其粘贴到iOS上的不同邮件客户端.
我尝试了StackOverflow的两个接受的答案:https://stackoverflow.com/a/6566850/1249958 和/sf/answers/1533839821/.这些解决方案适用于默认的iOS邮件客户端,但它们对Gmail没有任何影响.
我知道Gmail接受来自粘贴板的HTML输入,因为从Safari复制HTML并将其粘贴到Gmail应用中可以正常工作.
我想将HTML从我的应用程序传输到iPhone邮件应用程序.我已经有了HTML文本 - 至少说<span style ='color:red'>测试</ span>我可以将它放到UIPasteBoard - 但是当我将它粘贴到邮件时,我得到了html源代码.
当我在HTMLView中放置相同的字符串时 - 在那里选择并复制它,它将粘贴为邮件中的红色文本.
我需要做什么才能将字符串放在UIPasteBoard中,以便将其作为红色文本粘贴到邮件应用程序中?我一直在寻找"格式类型" - 并且发现当我在剪贴板中有元素(从UIWebView复制)时,UIPasteBoard返回"Aplle Web Archive粘贴板类型".但是在将内容添加到UIPasteBoard时将其设置为类型会在邮件应用程序中粘贴任何内容.
曼弗雷德