Swift 4.2 NSEditorRegistration - PullRequest
       30

Swift 4.2 NSEditorRegistration

0 голосов
/ 06 октября 2018

После перехода на 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 соответствовать протоколу вручную.

...