Как переименовать открытый документ в приложении Swiftui DocumentGroup с пользовательской навигацией?IOS

Программируем под IOS
Ответить
Anonymous
 Как переименовать открытый документ в приложении Swiftui DocumentGroup с пользовательской навигацией?

Сообщение Anonymous »

Я создаю приложение Swiftui на основе документов после приложения Apple, основанного на документах, с руководством Swiftui. Приложение использует DocumentGroup и хранит документы в ICloud Drive.
Важный контекст: Мы используем пользовательскую панель навигации вместо навигационной панели системы по умолчанию, что означает, что мы не имеем доступа к встроенной функции переименования, которая поставляется со стандартной панелью заголовка документов.

Код: Выделить всё

   @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)
[*] nsfilecoordinator [/b] - висит бесконечно, вероятно, из -за того, что документ уже координируется:

Код: Выделить всё

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
[*] Копировать и удалить подход [/b] - также сбои с ошибками разрешения в каталоге iCloud


Вопрос
Как я могу программировать. Приложение, когда: < /p>

Документ хранится в iCloud Drive < /li>
Мы используем пользовательскую панель навигации (не в системе One) < /li>
Документ в настоящее время открыт и отредактирован < /li>
< /ul>
. Координация и требования iCloud? Или мне нужно сначала закрыть документ, переименовать его, а затем снова откройте его?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... tom-naviga
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»