Ios 如何设置文本视图';将文本转换为通过从应用程序操作扩展插件接收文本而创建的字符串
我在玩动作扩展,看了苹果的文档,发现了这段代码Ios 如何设置文本视图';将文本转换为通过从应用程序操作扩展插件接收文本而创建的字符串,ios,objective-c,xcode,Ios,Objective C,Xcode,我在玩动作扩展,看了苹果的文档,发现了这段代码 NSExtensionContext *myExtensionContext = self.extensionContext; NSArray *inputItems = myExtensionContext.inputItems; 然后我将数组更改为字符串 NSString * resultString = [inputItems componentsJoinedByString:@""]; 然后,我将文本视图设置为resultString
NSExtensionContext *myExtensionContext = self.extensionContext;
NSArray *inputItems = myExtensionContext.inputItems;
然后我将数组更改为字符串
NSString * resultString = [inputItems componentsJoinedByString:@""];
然后,我将文本视图设置为resultString
textView.text = resultString;
我得到的是
<NSExtensionItem: 0x174002840> - userInfo: {NSExtensionItemAttachmentsKey = ("<NSItemProvider: 0x17424c900> {types = (\n \"public.plain-text\"\n)}");}
实际上,下面的代码将返回
NSExtensionItem
数组,而不是NSString
类型,因此您无法使用NSString*resultString=[inputItems componentsJoinedByString:@”“代码>
要解析NSExtensionItems
的NSArray
,需要执行以下操作。这里我假设“NSDictionary”是输入类型
for (NSExtensionItem *item in self.extensionContext.inputItems) {
for (NSItemProvider *itemProvider in item.attachments) {
if ([itemProvider hasItemConformingToTypeIdentifier:@"typeIdentifier"]) {
// This is an image. We'll load it, then place it in our image view.
[itemProvider loadItemForTypeIdentifier:@"typeIdentifier" options:nil completionHandler:^(id<NSSecureCoding> item, NSError *error) {
NSDictionary* tempDict = (NSDictionary*)item;
NSLog(@"Dectionary : %@",item);
}];
}
}
}
for(self.extensionContext.inputItems中的NSExtensionItem*项){
对于(item.attachments中的NSItemProvider*itemProvider){
if([itemProvider hasItemConformingToTypeIdentifier:@“typeIdentifier”]){
//这是一个图像。我们将加载它,然后将其放置在图像视图中。
[itemProvider loadItemForTypeIdentifier:@“typeIdentifier”选项:nil completionHandler:^(id项,N错误*错误){
NSDictionary*tempDict=(NSDictionary*)项;
NSLog(@“十二月:%@”,项目);
}];
}
}
}
有关更多详细信息,请参阅。UITextView中显示的内容绝对正确!能否具体说明您面临的问题是什么?您想在文本视图中显示什么?
for (NSExtensionItem *item in self.extensionContext.inputItems) {
for (NSItemProvider *itemProvider in item.attachments) {
if ([itemProvider hasItemConformingToTypeIdentifier:@"typeIdentifier"]) {
// This is an image. We'll load it, then place it in our image view.
[itemProvider loadItemForTypeIdentifier:@"typeIdentifier" options:nil completionHandler:^(id<NSSecureCoding> item, NSError *error) {
NSDictionary* tempDict = (NSDictionary*)item;
NSLog(@"Dectionary : %@",item);
}];
}
}
}