2017-12-29 15 views
1

を有効期限が切れるように設定は私がUIPasteboardに入れたい文字列を持っており、それが2分objectsキーの値がどうあるべきかUIPasteboard - コピーしたテキストは、

UIPasteboard.general.setObjects(objects: [NSItemProviderWriting], 
    localOnly: true, 
    expirationDate: Date().addingTimeInterval(120)) 

後に期限切れにする必要がありますか?

答えて

1

コントローラークラスの1つにインターフェイスNSItemProviderWritingとその必要なメソッドを実装する必要があります。

非常に単純な実装はyourStringを貼り付けるには、文字列が含まれているところのようになります。

static var writableTypeIdentifiersForItemProvider: [String] { 
    return [ kUTTypeUTF8PlainText as String ] 
} 

func loadData(withTypeIdentifier typeIdentifier: String, forItemProviderCompletionHandler completionHandler: @escaping (Data?, Error?) -> Void) -> Progress? { 
    completionHandler(yourString.data(using: .utf8), nil) 
    return nil 
} 

あなたはkUTTypeUTF8PlainTextの定義をインポートするためのimport MobileCoreServicesを追加する必要があります。

通常、この実装では、上のサンプルコードで呼び出しを行うコントローラを使用します。その後、あなたは配列内の値としてとしてこれを使用する必要があります。

UIPasteboard.general.setObjects(objects: [ self ], 
    localOnly: true, 
    expirationDate: Date(timeIntervalSinceNow: 120)) 
+0

2つの質問:1)スウィフトは 'kUTTypeUTF8PlainText'及び2)' yourString'は 'loadData'でから来ている知っていないようですか?それは私のVC上のローカル変数に文字列を割り当てると仮定されていますか? –

+0

[UTI型](https://developer.apple.com/library/content/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html)は、フレームワーク「MobileCoreServices」で定義されています。変数 'yourString'は、貼り付けるテキストのプレースホルダに過ぎません。必要に応じて定義する必要があります。 – clemens

+1

ご協力ありがとうございます –

関連する問題