3

私がやろうとしているのは、アプリの画像をSMSに貼り付けることです。

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSString *imagefile = [[NSBundle mainBundle] 
                       pathForResource:@"imagename"]
                       ofType:@"png"];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:imagefile];

if (fileExists){    
    UIImage *ui = [[UIImage alloc] initWithContentsOfFile:imagefile];
    pasteboard.image = ui;
    [ui release];
}

デバッグモードでは、画像が存在し、ペーストボードに移動することがわかります(ペーストボードからの画像を使用してイメージビューを導入することを確認しました。これは必要なものです)。

クリップボードに保存した後、電話します

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:"]];

ポップアップは表示されますが、そこで「テキストフィールド」をタップすると、貼り付けボタンが表示されません。誰かが私の間違いを指摘できますか? それともそうすることは理にかなっていますか?つまり、デフォルトのiPhoneメッセージアプリを介して画像を送信することは可能ですか?

4

3 に答える 3

3

「貼り付け」アクションは、タップした現在のオブジェクト (ここではテキスト フィールド) でサポートされている項目が貼り付けボードに含まれている場合にのみ表示されます。貼り板に画像だけ追加しているようです。テキスト フィールドは画像をサポートしていません。そのため、「貼り付け」アクションは表示されません。

于 2011-04-14T13:13:21.077 に答える
1

私はこれを機能させています。setData を使用して生データを提供し、forPasteboardType を使用してデータ型を設定するだけです。あなたのすぐ下

    if (fileExists){

これを試して

    NSData *data = [NSData dataWithContentsOfFile:imagefile];
    [pasteboard setData:data forPasteboardType:@"public.png"];            

ここでさまざまな PasteboardType UTI を検索できます

于 2012-03-20T20:08:14.870 に答える
1

このコードは正常に動作しています:

UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"imageName"]];
[[UIPasteboard generalPasteboard] setImage:image];
于 2014-11-11T07:34:30.040 に答える