일반적으로 사용자가 복사, 잘라내기, 복제 작업을 수행할 때 앱의 객체가 Pasteboard에 데이터를 작성함iOS 14부터 사용자 의도 없이 다른 앱에서 생성된 Pasteboard 데이터를 수신할 때 마다 사용자에게 알리도록 변경되었다. 알림을 피하려면 특정 속성 및 메서드를 사용하여 임시보드 여부를 결정할 수 있다.
사용자에게 알림을 보내지 않고 조용하게 데이터를 처리할 수 있다.
시스템은 generic이라는 이름을 사용하여 모든 유형의 데이터를 공유하는데 사용할 수 있는 시스템 전반의 generic pasteboard를 식별한다. 이외에도 앱에서 동일한 팀 ID를 가진 다른 앱으로 데이터를 공유하기 위해 명명된 UIPasteboard를 만들 수 있다. (init(name:create:) 및 withUniqueName()을 사용)
해당 클래스는 pasteboard 항목을 읽고 쓰기 위한 메서드를 제공한다. 개별 pasteboard 혹은 한번에 여러개의 pasteboard 항목을 읽거나 쓸 수 있다. 데이터를 작성할 땐 3가지 방법중 하나를 사용할 수 있다.
setItemProviders(_:localOnly:expirationDate:)setData(_:forPasteboardType:)setData(_:forPasteboardType:)pastebaord에서 특정 데이터 유형을 읽기 전에 원하는 유형의 데이터가 있는지 확인해봐야 한다. UIPasteboard 클래스의 유형 검사 방법을 사용하여 이를 수행할 수 있다. 읽기전에 특정 유형의 데이터가 있는지 확인하면 오류를 방지하고 앱이 페이스트보드 데이터를 올바르게 처리하는지 확인할 수 있다.
hasString과 같은 UIPasteboard 클래스에서 제공하는 속성을 사용하여 문자열 데이터가 있는지 확인할 수 있다.
let pasteboard = UIPasteboard.general
if pasteboard.hasStrings {
// Present string-data paste option to user
} else {
// Do not present string-data paste option to user
}
사용자의 의도 없이 pasteboard의 데이터에 액세스할 때 사용자 알림을 트리거하지 않으려면 UIPasteboard 클래스에서 제공하는 특정 속성 및 메서드를 사용할 수 있다. 아래 속성과 메서드를 사용하면 불필요한 알림을 트리거하지 않고 필요한 경우에만 pasteboard 데이터에 액세스 할 수 있다.
데이터 공유의 유연성을 제공하기 위해 복사 혹은 잘라내기 작업을 활용할 때 앱 내의 다양한 context에서 적절한 표시 유형을 사용할 수 있다. 예를 들어 사용자가 이미지를 복사하면 앱에서 PNG, JPEG, 및 GIF 데이터 형식과 같은 여러 표현 유형을 페이스트보드에 쓸 수 있다.
사용자가 iCloud에 로그인하면 generic pasteboard 콘텐츠가 동일한 iCloud 계정을 사용하는 주변 기기로 자동 전송될 수 있다. 핸드오프 동작 및 항목 만료와 같은 옵션을 설정하여 generic pasteboard에 작성 할 때 이 동작을 제어할 수 있다.
setItemProviders(_:localOnly:expirationDate:): 이 메서드를 사용하여 NSItemProviderWriting 프로토콜을 준수하는 임시 보드 항목을 작성하고 필요에 따라 localOnly 및 expirationDate 매개 변수를 지정하여 Handoff 및 만료 동작을 제어setObjects(_:localOnly:expirationDate:): 이 메서드를 사용하여 개체 리스트를 pasteboard에 쓰고 필요에 따라 localOnly 및 expirationDate 매개 변수를 지정setItems(_:options:): 이 메서드를 사용하여 대지 항목의 배열을 작성하고 localOnly 및 expirationDate 옵션과 같은 옵션을 설정임시 보드 항목의 만료 시간을 설정하려면 expriationDate 매개변수를 제공하거나 expriationDate 옵션과 함꼐 setItems(:option:)메서드를 사용하여 만료 시간에 도달하면 시스템이 pasteboard에서 항목을 자동으로 제거하도록 할 수 있다.
다음을 포함하여 다른 클래스 및 프로토콜을 활용하여 복사, 붙여넣기, 복제 작업을 사용할 수 있다.
UIEditMenuInteraction: 복사, 잘라내기, 붙여넣기, 선택 및 모두 선택과 같은 편집 작업이 포함된 메뉴를 표시UIActivityItemsConfigurationReading: 이 프로토콜을 구현하는 개체는 데이터 복사 및 공유를 지원할 수 있음UIPasteConfigurationSupporting: 이 프로토콜을 구현하는 개체는 특정 UIPasteConfiguration을 사용한 붙여넣기를 지원하는지 여부를 나타냄UIResponder: 응답자는 canPerformAction(_:withSender:)을 구현하여 현재 컨텍스트에 따라 메뉴에서 명령을 활성화 또는 비활성화UIResponderStandardEditActions: 응답자는 복사 및 붙여넣기와 같은 선택된 메뉴 명령을 처리하기 위해 이 비공식 프로토콜에 선언된 메서드를 구현