【问题标题】:In a macOS Cocoa Document-Based Application what could be a good implementation strategy for a "New From Template" feature like for example in Logic?在 macOS Cocoa 基于文档的应用程序中,对于“从模板新建”功能(例如在 Logic 中),什么可能是一个好的实施策略?
【发布时间】:2020-05-20 14:51:14
【问题描述】:

提前感谢您的帮助。我在 macOS 应用程序上有很好的经验,但在基于文档的应用程序方面我几乎是新手。我正在尝试一个基于文档并使用 CoreData 的新项目。我想实现一个“来自模板的新文档”,以便在选择某个模板时,应用程序创建一个新文档,其中包含在文档的托管对象上下文中创建和填充的一些核心数据对象。什么是实现这一目标的干净方法?非常感谢你的帮助。

【问题讨论】:

    标签: swift macos cocoa core-data nsdocument


    【解决方案1】:

    看看NSDocumentControllerduplicateDocument(withContentsOf:copying:displayName:) method

    通过从另一个 URL 读取文档的内容来创建一个新文档,显示其用户界面,如果成功则返回该文档。

    你会想这样称呼它:

    let document = try NSDocumentController.shared.duplicateDocument(
        withContentsOf: templateUrl,
        copying: true,
        displayName: "Untitled")
    

    【讨论】:

    • 非常感谢!完全符合目的!此外,您可以将文档转换为您的 NSDocument 或 NSPersistentDocument 子类,它适用于两者。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 2012-02-02
    相关资源
    最近更新 更多