gpt4 book ai didi

iphone - 在 iPhone 上复制并粘贴多种数据表示形式

转载 作者:行者123 更新时间:2023-12-03 18:32:25 24 4
gpt4 key购买 nike

我在 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];

上面的代码不起作用,因为字符串属性和 setValue:forPasteboardType: 方法替换了粘贴板上的第一个表示形式。我尝试了 addItems: 但它对我不起作用。

感谢您的帮助!

最佳答案

回答我自己的问题:

您必须使用 items 属性将多个表示形式放置到粘贴板上。为此,您需要创建一个字典,其中每个表示形式作为值,表示形式类型作为键。将此字典添加到一个数组中,其中数组中的每个项目代表一个项目(UIPasteboard 支持将多个项目添加到粘贴板以及为每个项目添加多个表示)。

具有两种表示形式的单个项目的示例代码:

    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSMutableDictionary *item = [NSMutableDictionary dictionaryWithCapacity:2];
[item setValue:[NSKeyedArchiver archivedDataWithRootObject:pasteboardDictionary] forKey:MNTNodesPasteboardType];
[item setValue:pasteboardString forKey:(NSString *)kUTTypeUTF8PlainText];
pasteboard.items = [NSArray arrayWithObject:item];

不要忘记链接 MobileCoreServices 框架来解析 UTI 常量。

关于iphone - 在 iPhone 上复制并粘贴多种数据表示形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1034509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com