번들 디렉토리에 일부 .zip 파일과 함께 제공되는 macOS 응용 프로그램을 만들고 있습니다.NSSavePanel을 사용하여 번들에서 데스크톱으로 파일 저장/복사
사용자는 내 앱에서이 파일을 사용자 지정 디렉토리에 저장할 수 있어야합니다.
나는NSSavePanel
을 발견하고 올바른 방법입니다 생각 - 그게 내가 지금까지이 작업은 다음과 같습니다
@IBAction func buttonSaveFiles(_ sender: Any) {
let savePanel = NSSavePanel()
let bundleFile = Bundle.main.resourcePath!.appending("/MyCustom.zip")
let targetPath = NSHomeDirectory()
savePanel.directoryURL = URL(fileURLWithPath: targetPath.appending("/Desktop"))
// Is appeding 'Desktop' a good solution in terms of localisation?
savePanel.message = "My custom message."
savePanel.nameFieldStringValue = "MyFile"
savePanel.showsHiddenFiles = false
savePanel.showsTagField = false
savePanel.canCreateDirectories = true
savePanel.allowsOtherFileTypes = false
savePanel.isExtensionHidden = true
savePanel.beginSheetModal(for: self.view.window!, completionHandler: {_ in })
}
나는 savePanel
에 bundleFile
'을 넘겨'하는 방법을 찾을 수 없습니다.
내 주요 질문 : 어떻게 응용 프로그램 번들의 파일을 사용자 지정 디렉토리에 저장/복사 할 수 있습니까?
추가 질문에 따라 달라집니다. NSSavePanel
: 1) 기본적으로 현지화되어 있지 않습니다 (내 Xcode 체계는 독일어로 설정되어 있지만 패널은 영어로 표시됨). 직접 수정해야하나요? 2) 기본적으로 확장 된 패널을 제공 할 수있는 방법이 있습니까?
번들 또는 NSBundle에 대한 검색을 실행하면 도움이됩니다. –
@ElTomato bundleFile에 대한 경로를 찾기 위해 이미'Bundle'을 사용했습니다 (위의 코드 참조). 설명 된 문제로는 도움이되지 않습니다. – ixany
아, 죄송합니다. 생각해 봅시다. 나는 당신과 함께 돌아올 것입니다. –