После перехода на Swift 4.2 на macOS 10.14 с использованием Xcode 10.0 (10A255) при вызове следующего NSEditorRegistration метода протокола:
viewController.objectDidBeginEditing(editorViewController)
Я получаю следующую ошибку компилятора:
Value of type 'ViewController' has no member 'objectDidBeginEditing'
Этот метод прекрасно работал при Swift 4 на 10.13 с использованием Xcode 9 и позволил мне регистрировать редакторы так, как это предусмотрено протоколами NSEditor и NSEditorRegistration .
Чтение примечаний к выпуску AppKit для macOS 10.14 в разделе «Новые формальные протоколы» были внесены некоторые изменения в протоколы категории NSObject. NSEditor также упоминается.Не уверен, играет ли это роль.
Согласно документам NSViewController все еще должен наследоваться от NSController , который, в свою очередь, соответствует обоим NSEditor и NSEditorRegistration протоколы.Я не вижу причин, по которым метод objectDidBeginEditing больше не должен работать.
Действительно надеюсь, что кто-нибудь поможет мне разобраться в этом!Большое спасибо заранее !!!
РЕДАКТИРОВАТЬ: Сразу после этого я понял, что NSViewController на самом деле не наследуется от NSController , но от NSObject .Согласно изменениям SDK 10.14, objectDidBeginEditing NSObject теперь устарел и теперь реализуется только классами, соответствующими протоколу NSEditorRegistration .Мне нужно будет найти способ заставить мой ViewController соответствовать протоколу вручную.