"Override methods to handle user-initiated actions."
사용자가 초기화한 액션을 처리하는 오버라이드 메소드입니다.
사용자가 문서 브라우저에서 액션을 수행할 때(예를 들어 아이템의 이동, 이름 변경, 삭제), 시스템은 NSFileProviderExtension
에서 상응하는 메소드를 호출합니다.
아래 테이블이 각 액션 타입에 대한 액션 메소드를 보여주고 있습니다.
User Action | Action Method |
---|---|
Creates a new folder | createDirectory(withName:inParentItemIdentifier:completionHandler:) |
Deletes a document or folder | deleteItem(withIdentifier:completionHandler:) |
Imports a document | importDocument(at:toParentItemIdentifier:completionHandler:) |
Renames a document or folder | renameItem(withIdentifier:toName:completionHandler:) |
Moves a document or folder | |
reparentItem(withIdentifier:toParentItemWithIdentifier:newName:completionHandler:) | |
Sets or changes a folder's favorite rank | setFavoriteRank(_:forItemIdentifier:completionHandler:) |
Uses a document | setLastUsedDate(_:forItemIdentifier:completionHandler:) |
Tags or untags a document or folder | setTagData(_:forItemIdentifier:completionHandler:) |
Moves a document or folder to the trash | trashItem(withIdentifier:completionHandler:) |
Removes a document or folder from the trash | untrashItem(withIdentifier:toParentItemIdentifier:completionHandler:) |
액션 메소드가 호출되면 구현이 아래처럼 되도록 해줘야 합니다.
모든 액션 메소드는 오프라인으로 작동하길 기대되며, 즉시 반환해야 합니다. 네트워크 동작 혹은 긴 시간을 소요하는 작업을 수행하기 전에 컴플리션 핸들러를 호출하시기 바랍니다. 이 작업들은 백그라운드로 지연됩니다.
액션에 의해 생성된 모든 변경사항에 대해 시스템에게 신호를 보냅니다.
https://developer.apple.com/documentation/fileprovider/nsfileproviderextension/providing_support_for_user-driven_actions/signaling_changes_for_user-driven_actions
https://velog.io/@panther222128/Signaling-Changes-for-User-Driven-Actions
액션 프로세싱 동안 발생하는 모든 에러를 처리합니다.
https://developer.apple.com/documentation/fileprovider/nsfileproviderextension/providing_support_for_user-driven_actions/handling_errors_with_user-driven_actions
https://velog.io/@panther222128/Handling-Errors-with-User-Driven-Actions