Не удалось подключить действие: к цели класса NSApplication - PullRequest
11 голосов
/ 19 июля 2011

Я получаю Could not connect the action startServer: to target of class NSApplication ошибку при компиляции. Я понимаю, что это за ошибка, но не знаю, как ее исправить. Каким-то образом мой xib пытается вызвать метод startServer в NSApplication, который не существует.

Ответы [ 4 ]

22 голосов
/ 19 июля 2011

Звучит так, как будто вы подключили свой элемент пользовательского интерфейса к объекту «Владелец файла», который является экземпляром NSApplication.

Если вы еще этого не сделали, вы хотите перетащить объект NSO из объекта.Палитра библиотеки в Xcode 4 на полях слева от вашего макета.После того как вы это сделали и выбрали его, выберите инспектор идентификации и в поле Class введите «WindowController».

Теперь, когда у вас есть представление вашего WindowController, который, как вы сказалисодержит startServer :, тогда вы можете подключить к нему свой элемент пользовательского интерфейса.Убедитесь, что ваш метод startServer имеет форму:

- (IBAction)startServer:(id)sender

, иначе вы не сможете установить соединение.

Удачи вам в ваших начинаниях.

3 голосов
/ 19 февраля 2013

Просто вы можете исправить это двумя простыми способами:

  1. [[YourWindowController alloc]initWithWindowNibName:XIB_YOUR_WINDOW_CONTROLLER]; здесь не создавать с владельцем.поэтому NSApplication не будет владельцем.

  2. [[YourWindowController alloc]init]; и в YourWindowController.m метод инициализации переопределения файла и вызовите self = [super initWithWindowNibName:XIB_YOUR_WINDOW_CONTROLLER];

1 или 2 решит эту проблему.

Happy Coding ....

2 голосов
/ 15 ноября 2011

У меня была та же проблема, но, наконец, я решил ее.Я не уверен, что это будет работать для вас, но попробуйте следующее:

(в Интерфейсном Разработчике)

Из библиотеки перетащите объект NSO в окно документа XIB.Отключите объекты, которые вы подключили к владельцу файла, подключив их к объекту NSObject.Переименуйте NSObject подходящий.Выделите NSObject, перейдите к Инспектору.В разделе «Идентификация класса» найдите имя объекта NSO, который вы только что переименовали.Сохранить!

Посмотрите, работает ли он для вас!Теперь у меня работает!Удачи!

0 голосов
/ 19 июля 2011

Вы установили соединение с владельцем файла в своем главном перо, которое вы, вероятно, хотели подключить к чему-то еще.В каком классе вы реализовали -startServer: в?

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