NSProgressBar startAnimation从ManiMenu动作调用

| StackOverflow和Cocoa newbye中的第一个问题,此外,我正在使用XCode 4(请客气!) 场景: 一个简单的NSPersistentDocument多窗口:每个文档都有一个window.nib和一个附加的WindowController 当我按下WINDOW TOOLBAR中的按钮时,应用程序运行NSTask(在后台)。 我决定在窗口中(在视图内)放置一个不错的NSProgressIndicator(不确定),该属性在任务开始时进行动画处理,并在任务结束时进行动画处理(我通过通知收集任务消息)。 样例代码: WindowController中的NSButton-> IBAction->方法
- (IBAction)launchSim:(id)sender 
{
[simcell launchTask];
[progBar startAnimation:self];
   .... more code ...
}
一切正常且完美。 现在(像在这种情况下一样),您遇到一个奇怪的错误,并且开始变得毫无用处: 我决定也要从MainMenu(从NSMenuItem)运行相同的Action: 在MainMenu.xib中: NSMenuItem(\“ RUN \”)-> FirstResponder-> First Responder中的用户定义的操作:launchSim(类型ID) RUN菜单项正确运行任务(我有NSLog DEBUG消息),但是progressBar的动画(startAnimation)无法启动! 2个动作之间的差异: 第一个(工作)是从WindowController拥有的Nib文件中调用的 第二个(不起作用)从MainMenu.xib调用并发送到FirstResponder 这两个动作均正确执行了方法中代码的另一部分,但是如果我从菜单中调用该动作,则看不到进度指示器的任何动画。 我想念什么? 谢谢和最好的问候     
已邀请:
您无需对第一响应者进行任何操作即可将菜单项连接到操作。 使菜单项执行动作的方式与使按钮执行动作的方式完全相同: 打开笔尖文件。 转到菜单并导航到应该触发该操作的\“ Run \”菜单项。 按住Ctrl键单击菜单项,然后将连接线拖动到窗口控制器。 释放拖动时,应该会弹出一个菜单。单击launchSim :,您应该已经准备就绪。     
好吧,我对自己说,因为我发现了这个错误: 该结构是“高级” NSPersistentDocument的经典结构: 一类文件 NSWindowController的一个子类来控制视图 这遵循MVC架构: 型号:文件 控制器:附在窗户上 查看:窗口 我的错误是在视图中创建一个NSObject并将其链接到NSWindowController,而正确的方法是将NSWindowController的子类设置为文件所有者,现在神奇的是,MainMenu也开始动画。这在某种程度上与响应者链有关,但是与我目前对可可的了解相去甚远。如果有人可以评论和解释...。     

要回复问题请先登录注册