我在iOS上玩了一段时间后,正在开发我的第一个原生mac应用程序。
我试图从菜单项启动一个窗口,但我怀疑我做错了。任何IBAction
我连接到这个新窗口上的按钮都会返回错误。
这是我正在做的事情。从菜单项我启动:
-(IBAction)displaySAInput:(id)sender{
NSLog(@"Input selected.");
inputSAViewController = [[NSWindowController alloc] initWithWindowNibName:@"InputViewController"];
[inputSAViewController showWindow:self];
这将启动InputViewController
类所拥有的InputViewController
笔尖。我将InputViewController
类设置为继承自NSWindowController
。
在InputViewController.m
上我测试了IBAction
,例如:
-(IBAction)testButton:(id)sender{
NSLog(@"Data recalled?");
}
我通过Interface Builder将此IBAction
连接到一个按钮。一切看起来还不错。
当我构建并打开InputViewController
窗口时,我在控制台中收到此错误,然后单击任何内容:
Could not connect the action testButton: to target of class NSWindowController
我进行了广泛的搜索但是我的无知阻止了我连接点。这个帖子based on a similar error with NSApplication看起来很有希望,但我不太清楚我需要做什么才能使连接发生与NSWindowController
错误有关。
这应该很简单。我错过了什么?
答案 0 :(得分:1)
您的代码:
-(IBAction)displaySAInput:(id)sender{
NSLog(@"Input selected.");
inputSAViewController = [[NSWindowController alloc]
initWithWindowNibName:@"InputViewController"];
[inputSAViewController showWindow:self];
}
请注意,您正在分配/启动NSWindowController
的通用实例,而不是您已实现testButton:
方法的自定义子类。我假设您可能希望将其更改为:
-(IBAction)displaySAInput:(id)sender{
NSLog(@"Input selected.");
inputSAViewController = [[InputViewController alloc]
initWithWindowNibName:@"InputViewController"];
[inputSAViewController showWindow:self];
}
答案 1 :(得分:0)
只需先加载NSWindow并使其不可见,当调用IBAction时,只需执行以下操作:
[myWindow setIsVisible:YES];
[myWindow setLevel:NSFloatingWindowLevel];
耶!