"... обычно я был в состоянии нажать Ctrl + перетащить на " Владелец файла ""
После добавления дополнительных IBOutlet
s к вашемукласс контроллера, вы обычно устанавливаете их в Интерфейсном Разработчике, перетаскивая из объекта контроллера в элемент просмотра, а не наоборот.(Здесь объектом контроллера обычно является File's Owner
, «Приложение» или экземпляр созданного пользовательского объекта контроллера.)
Реже можно перетащить из самих представлений в объект (ы) контроллера или другие объекты представления для установки специфичных для класса IBOutlet
s, таких как delegate
и / или dataSource
, menu
, formatter
и т. Д. Например, NSTextField
добавляет delegate
и formatter
IBOutlet
к NSView
menu
и nextKeyView
IBOutlet
с.
Итак, вы можете перепроверить, что выперетаскиваете в правильном направлении для рассматриваемого объекта.
Если вы знаете, что перетаскиваете в правильном направлении, и Interface Builder не работает, как обычно, есть пара вещей, которые вы могли быtry.
Во-первых, если вы добавили дополнительные IBOutlets в ваш класс контроллера и пытаетесь подключить их в Интерфейсном Разработчике, перепроверьте, что вы фактически указали правильный класс для нужного объекта представления.Например, чтобы добавить новый IBOutlet, я иногда копирую существующую строку, скажем IBOutlet NSTextField *textField;
, и затем вставляю ее.Затем я бы изменил имя на tableView
(с намерением подключить IBOutlet
к NSTableView
), но я забуду изменить NSTextField
на NSTableView
.Поэтому, когда я перехожу к Интерфейсному Разработчику и пытаюсь «подключить» IBOutlet путем перетаскивания из класса контроллера в NSTableView
, не будет отображаться всплывающее меню, так как табличное представление и текстовое поле - это два разных типа объектов..
Во-вторых, вы можете опубликовать содержимое вашего .h файла.Возможно, вы забыли ;
или иным образом создали возможную ситуацию, которая приводит к тому, что синтаксический анализ файла .h (с помощью XCode, который затем передает результаты в Интерфейсный Разработчик) завершается неудачно.Когда это происходит, это может помешать появлению многих IBOutlets и т. Д. В IB.Вы также можете попробовать скомпилировать свой код, чтобы выяснить, в чем проблема.Я иногда делал это сам.