Я продолжаю получать ошибку Could not connect the action startServer: to target of class NSApplication
при компиляции. Я понимаю, что ошибка, но не уверен, как ее исправить. Как-то мой xib пытается вызвать метод startServer в NSApplication, которого не существует.
Не удалось подключить действие: для целевого класса NSApplication
Ответ 1
Звучит так, как будто вы подключили свой элемент пользовательского интерфейса к объекту File Owner, который является экземпляром NSApplication.
Если вы еще этого не сделали, вы хотите перетащить NSObject из палитры библиотеки объектов в Xcode 4 в поле слева от вашего макета. После того, как вы это сделали и выбрали, выберите инспектор идентификации и в поле "Класс" введите "WindowController".
Теперь, когда у вас есть представление вашего WindowController, которое, как вы сказали, содержит startServer:, тогда вы можете подключить к нему свой элемент пользовательского интерфейса. Убедитесь, что ваш метод startServer имеет следующую форму:
- (IBAction)startServer:(id)sender
или вы не сможете установить соединение.
Удачи вам в ваших начинаниях.
Ответ 2
Просто вы можете исправить это двумя путями:
-
[[YourWindowController alloc]initWithWindowNibName:XIB_YOUR_WINDOW_CONTROLLER];
здесь не создавать с владельцем. поэтомуNSApplication
не будет владельцем. -
[[YourWindowController alloc]init];
и вYourWindowController.m
файл переопределить метод init и вызватьself = [super initWithWindowNibName:XIB_YOUR_WINDOW_CONTROLLER];
один или два будут исправлять эту проблему.
Счастливое кодирование....
Ответ 3
У меня была такая же проблема, но, наконец, она была решена. Я не уверен, что это сработает для вас, но попробуйте следующее:
(построитель интерфейса)
Из библиотеки перетащите NSObject в окно вашего XIB-документа. Отключите объекты, которые вы подключили к File Owner, подключив их к NSObject. Переименуйте NSObject в подходящий. Выделите NSObject, перейдите к инспектору. В разделе "Идентификатор класса" найдите имя только что переименованного NSObject. Сохранить!
Посмотрите, работает ли это для вас! Теперь у меня работала! Удачи!
Ответ 4
Вы установили соединение с владельцем файла в своем основном nib, что вы, вероятно, хотели подключиться к чему-то еще. В каком классе вы реализовали -startServer:
в?