2

UIActivityViewControllerを使用して、アプリからのテキストを共有しています。メッセージ、電子メール、コピーなどにテキストを送信することはできますが、印刷するために送信することはできません。

UIActivityTypePrintはNSDataのデータ型を取ります。UIActivityViewControllerを作成して、文字列を文字列とNSDataの両方として取得し、ビューで印刷オプションを使用できるようにするにはどうすればよいですか?

NSString *textToShare = self.note.note;
        NSArray *itemsToShare = [[NSArray alloc] initWithObjects:textToShare, nil];
        shareVC = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
        shareVC.excludedActivityTypes = [[NSArray alloc] initWithObjects:UIActivityTypeSaveToCameraRoll,  UIActivityTypePostToWeibo, nil];
4

2 に答える 2

9

とった。NSDataを直接取得するのではなく、UISimpleTextPrintFormatterを使用します。

NSString *textToShare = self.note.note;

UISimpleTextPrintFormatter *printData = [[UISimpleTextPrintFormatter alloc]
                                                         initWithText:textToShare];
NSArray *itemsToShare = [[NSArray alloc] initWithObjects:textToShare,printData, nil];
shareVC = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
shareVC.excludedActivityTypes = [[NSArray alloc] initWithObjects:UIActivityTypeSaveToCameraRoll,  UIActivityTypePostToWeibo, nil];     
于 2012-12-31T16:14:47.900 に答える
0

配列itemsToShareにNSDataタイプの別のアイテムを追加します

NSString *textToShare = self.note.note;
NSData* data = [textToShare dataUsingEncoding:NSUTF8StringEncoding];
NSArray *itemsToShare = [[NSArray alloc] initWithObjects:textToShare,data, nil];
shareVC = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
shareVC.excludedActivityTypes = [[NSArray alloc] initWithObjects:UIActivityTypeSaveToCameraRoll,  UIActivityTypePostToWeibo, nil];

また

辞書を使用してアイテムを送信する

NSString *textToShare = self.note.note;
NSData* data = [textToShare dataUsingEncoding:NSUTF8StringEncoding];

NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
[dictionary setObject:textToShare forKey:@"shareString"];
[dictionary setObject:data forKey:@"shareData"];
NSArray *itemsToShare = [[NSArray alloc] initWithObjects:dictionary, nil];
[dictionary release];
shareVC = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
shareVC.excludedActivityTypes = [[NSArray alloc] initWithObjects:UIActivityTypeSaveToCameraRoll,  UIActivityTypePostToWeibo, nil];
于 2012-12-31T15:21:32.020 に答える