我在编译时遇到Could not connect the action startServer: to target of class NSApplication
错误。我理解错误是什么,但不知道如何解决它。不知怎的,我的xib试图在NSApplication中调用不存在的startServer方法。
答案 0 :(得分:22)
听起来好像是将UI元素连接到File的Owner对象,这是NSApplication的一个实例。
如果您还没有这样做,则需要将NSObject从Xcode 4中的Object Library面板拖出到布局左侧的边距。完成后,选择它,选择身份检查器,然后在Class字段中输入“WindowController”。
现在您已经获得了WindowController的表示,正如您所说的那样包含startServer:,那么您可以将UI元素连接到它。确保您的startServer方法的格式为:
- (IBAction)startServer:(id)sender
或者您将无法建立连接。
祝你工作顺利。
答案 1 :(得分:3)
只需通过两种简单的方法解决这个问题:
[[YourWindowController alloc]initWithWindowNibName:XIB_YOUR_WINDOW_CONTROLLER];
这里不要与所有者一起创建。所以NSApplication
将不是所有者。
[[YourWindowController alloc]init];
并在YourWindowController.m
文件中覆盖init方法,并调用self = [super initWithWindowNibName:XIB_YOUR_WINDOW_CONTROLLER];
1或2将解决此问题。
快乐编码......
答案 2 :(得分:2)
我遇到了同样的问题,但终于解决了。我不确定这是否适合你,但试试这个:
(在界面生成器上)
从库中,将NSObject拖到您的XIB文档窗口。 通过将连接到NSObject的对象断开连接到文件所有者的对象。 将NSObject重命名为适合的。 突出显示NSObject,转到Inspector。 在Class Identity下,搜索刚刚重命名的NSObject的名称。 保存!
看看它是否适合你!它现在在我的工作!祝你好运!
答案 3 :(得分:0)
您已经在主笔尖中建立了文件所有者的连接,您可能想要连接其他内容。您在{1}}中实施了哪些课程?