2017-12-29 36 views
1

을 만료되도록 설정은 내가 UIPasteboard에 투입 할 문자열을 가지고 있으며 2 분 objects 키의 값이어야 무엇UIPasteboard - 복사 된 텍스트가

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

후에 만료해야합니까?

답변

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

도움 주셔서 감사합니다. –