NSKeyedUnarchiver decodeObjectForKey: невозможно декодировать объект класса AMPathPopUpButton для ключа NS.objects - PullRequest
0 голосов
/ 20 июня 2019

Я получил эту ошибку, пытаясь взломать мой способ добавления элементов пользовательского интерфейса во всплывающее окно в Xcode, просто рисуя компоненты пользовательского интерфейса в виде из Storyboard Xcode:

2019-06-19 17:48:07.215803-0400 FileVacuum[28312:2252972] [General] *** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (AMPathPopUpButton) for key (NS.objects); the class may be defined in source code or a library that is not linked
2019-06-19 17:48:07.222794-0400 FileVacuum[28312:2252972] [General] (

Xcode Main.storyboard screenshot

Я с радостью нарисовал свое приложение в Xcode, собрал его и увидел ошибку выше, когда попытался вызвать всплывающее окно с недавно добавленными Main.storyboard элементами пользовательского интерфейса внутри.

1 Ответ

0 голосов
/ 20 июня 2019

Чтобы устранить эту ошибку и получить / отобразить элементы пользовательского интерфейса вашего всплывающего окна, нужно выполнить два простых шага:

  1. Добавьте «Automator.framework» на странице настроек «Общие» вашего проекта. Смотрите этот ответ здесь: https://stackoverflow.com/a/25667439/1762493
  2. Затем обязательно свяжите элементы в вашем всплывающем окне с переменной @IBOutlet следующим образом: @IBOutlet var imgPath: NSPathCell!. Как только вы добавите @IBOutlet var, вы должны перетащить мышку и подключить ее к элементу пользовательского интерфейса. Вам понадобится @IBOutlet или @IBAction для каждого элемента, который вы нарисовали в Main.storyboard, например:

Xcode screenshot dragging IBOutlet variable to Main.storyboard UI element

На RayWenderlich.com есть хорошее руководство по созданию всплывающего окна и добавлению элементов пользовательского интерфейса, подключенных к Main.storyboard для приложений MacOS, здесь:

https://www.raywenderlich.com/450-menus-and-popovers-in-menu-bar-apps-for-macos

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...