1) Как правильно передавать ложные данные для тестирования пользовательского интерфейса приложения на основе NSDocument?
Что я делаю, это следующее:
1) Чтобы открыть новый документ, я звоню makeUntitledDocument(ofType typeName: String)
. Нет необходимости переопределять это вообще. Затем вы можете настроить документ так же, как вы sh с возвращаемым значением этого API.
2) Чтобы открыть ранее сохраненный документ, я действительно вызываю openDocument(withContentsOf:display:completionHandler:)
Использование псевдо- код будет примерно таким, где вы можете передать любой URL с фиктивными данными:
func openDocument(itemData:ItemData) {
let controller = NSDocumentController.shared
controller.openDocument(withContentsOf: itemData.url, display: true)
{ (_, _, error:Error?) in
if error != nil {
handleError(.unableToOpenDocument(itemData.url))
}
}
}
Еще раз, нет необходимости переопределять openDocument(withContentsOf:display:completionHandler:)
.
2) Как правильно открыть файл при запуске приложения, используя строковый аргумент?
Я бы использовал для этого сценарий bash, используя:
open -a $APP_PATH $DOCUMENT_PATH
Это будет имитировать c, что делает Finder, но если вам не нравится этот вариант, то вы всегда можете попробовать то, что они предлагают в ответах на этот вопрос здесь .