Важный контекст: Мы используем пользовательскую панель навигации вместо навигационной панели системы по умолчанию, что означает, что мы не имеем доступа к встроенной функции переименования, которая поставляется со стандартной панелью заголовка документов.
Код: Выделить всё
@main
struct MyApp: App {
var body: some Scene {
DocumentGroup(newDocument: MyDocument()) { file in
ContentView(document: file.$document)
.navigationBarHidden(true) // Using custom navigation
}
}
}
< /code>
Проблема < /h2>
Мне нужно переименовать в данный момент программно открытый документ из приложения. При попытке использовать filemanager.moveitem (at: to :) < /code>, я получаю эту ошибку: < /p>
error domain = nscocoaerrordomain code = 513 "" Нельзя перемещать 142 ", потому что
у вас нет разрешения на доступ к" Campplan ". {Error domain = nsposixErrordomain code = 1 "Операция не разрешена"}}
Путь файла находится в iCloud:/private/var/mobile/library/mobile documn /> [*] [b] Прямой подход FileManager < /strong> - приводит к ошибке разрешения: < /p>
try FileManager.default.moveItem(at: currentURL, to: newURL)
Код: Выделить всё
let coordinator = NSFileCoordinator(filePresenter: nil)
coordinator.coordinate(writingItemAt: currentURL, options: .forMoving, error: &error) { url in
// This block never executes - coordination hangs
}
Код: Выделить всё
@Environment(\.rename) private var rename // rename is nil
Вопрос
Как я могу программировать. Приложение, когда: < /p>
Документ хранится в iCloud Drive < /li>
Мы используем пользовательскую панель навигации (не в системе One) < /li>
Документ в настоящее время открыт и отредактирован < /li>
< /ul>
. Координация и требования iCloud? Или мне нужно сначала закрыть документ, переименовать его, а затем снова откройте его?>
Подробнее здесь: https://stackoverflow.com/questions/797 ... tom-naviga
Мобильная версия