(Разработка на OSX 10.9, Xcode 6.1b)
Если я объявляю IBOutlets в своем AppController, все в порядке. Я создаю экземпляр объекта в InterfaceBuilder, перетаскиваю его, чтобы сформировать выход, и к тому времени, когда я достиг приложения applicationDidFinishLaunching, мои IBOutlets заполнены и все отлично.
Если я сделаю шаг вперед в абстракции и создаст экземпляр пользовательского объекта контроллера в InterfaceBuilder (подкласс NSObject) и объявит один из моих объектов как IBOutlet в этом классе, они равны нулю, каждый из них.
Я могу установить соединение просто отлично, IB кажется убежденным, что он существует, список "ссылочных точек" верен, но этого не требуется, и я не смог найти что-либо в документации за пределами
Он неявно разворачивается, потому что после того, как ваш класс инициализируется из файла раскадровки или xib, вы можете предположить, что розетка подключена.
Хорошо, я предполагал это.
Весь мой код - это предложения шаблонов Xcode:
@IBOutlet weak var sceneController: NSArrayController!
и я проверил и дважды проверил и проверил тройные проверки соединений. Я просмотрел десятки учебных пособий iOS (хотя я не могу найти эквивалент для OSX), все из которых, похоже, являются вариантами темы "да", вы можете полностью объявить выход в файл, отличный от AppController, просто убедитесь, что что каждый задействованный экземпляр существует ".
(На момент написания документа в документации "mac" использовались примеры с использованием UIButton и т.д.)
У меня нет идей. Очевидно, что соединение не сформировано, по-видимому, потому, что объекты создаются в порядке, отличном от "класса контроллера сначала, IBOutlets позже", но как я могу заставить это соединение?