Элементы меню NSPersistentDocument и File - PullRequest
0 голосов
/ 10 февраля 2019

Я создал совершенно новое приложение macOS, используя Xcode 9.2, с выбранными в шаблоне проекта «Создать приложение на основе документа» и «Использовать основные данные».

Я внес четыре изменения:

  1. Отредактировал модель CoreData, добавив в нее сущность с именем «Сущность» с двумя строковыми атрибутами: «имя» и «содержимое».

  2. Использовал "Editor-> Create NSManagedObject subclass" для генерации вспомогательных методов для сущности.

  3. Заменил стандартный Window.xib новым, пустое Window.xib.

  4. Добавлен следующий код в Document.swift, который содержит мой подкласс NSPersistentDocument:

    override func windowControllerDidLoadNib(_ windowController: NSWindowController) 
    {
        super.windowControllerDidLoadNib(windowController)
    
        let entity = Entity(context: managedObjectContext!)
        entity.name = "TestEntity"
        entity.content = "test content goes here"
    
        Swift.print("edited: \(self.isDocumentEdited)") // prints "NO"
    }
    

Я предположил, что этого будет достаточно, чтобы автоматически включить пункт меню File-> Save ...Это не.Это остается серым.Значение isDocumentEdited в печатном виде равно NO.

Однако , когда я закрываю приложение, меня спрашивают Do you want to save the changes made to the document "Untitled"? в стандартном диалоговом окне.Итак, Core Data знает о моих изменениях, но, кажется, возможно, они не связаны с окном документа ...?

Что мне здесь не хватает?Что мне нужно сделать, чтобы связать окно документа переднего плана с экземпляром NSPersistentDocument?

1 Ответ

0 голосов
/ 10 февраля 2019

Решил это.В моем новом Document.xib мне не хватало следующих 3 вещей:

  1. Владелец файла -> Необходимо установить класс Document
  2. Мне нужно было добавить выход для ссылки,владельцу файла, window свойство
  3. Мне нужно было добавить розетку из свойства delegate владельцу файла
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...