无法将操作连接到类NSApplication的目标

时间:2011-07-19 02:12:57

标签: objective-c cocoa

我在编译时遇到Could not connect the action startServer: to target of class NSApplication错误。我理解错误是什么,但不知道如何解决它。不知怎的,我的xib试图在NSApplication中调用不存在的startServer方法。

4 个答案:

答案 0 :(得分:22)

听起来好像是将UI元素连接到File的Owner对象,这是NSApplication的一个实例。

如果您还没有这样做,则需要将NSObject从Xcode 4中的Object Library面板拖出到布局左侧的边距。完成后,选择它,选择身份检查器,然后在Class字段中输入“WindowController”。

现在您已经获得了WindowController的表示,正如您所说的那样包含startServer:,那么您可以将UI元素连接到它。确保您的startServer方法的格式为:

- (IBAction)startServer:(id)sender

或者您将无法建立连接。

祝你工作顺利。

答案 1 :(得分:3)

只需通过两种简单的方法解决这个问题:

  1. [[YourWindowController alloc]initWithWindowNibName:XIB_YOUR_WINDOW_CONTROLLER]; 这里不要与所有者一起创建。所以NSApplication将不是所有者。

  2. [[YourWindowController alloc]init]; 并在YourWindowController.m文件中覆盖init方法,并调用self = [super initWithWindowNibName:XIB_YOUR_WINDOW_CONTROLLER];

  3. 1或2将解决此问题。

    快乐编码......

答案 2 :(得分:2)

我遇到了同样的问题,但终于解决了。我不确定这是否适合你,但试试这个:

(在界面生成器上)

  

从库中,将NSObject拖到您的XIB文档窗口。   通过将连接到NSObject的对象断开连接到文件所有者的对象。   将NSObject重命名为适合的。   突出显示NSObject,转到Inspector。   在Class Identity下,搜索刚刚重命名的NSObject的名称。   保存!

看看它是否适合你!它现在在我的工作!祝你好运!

答案 3 :(得分:0)

您已经在主笔尖中建立了文件所有者的连接,您可能想要连接其他内容。您在{1}}中实施了哪些课程?