在使用XCODE和Objective-C的MAC上,我需要显示一个包含微调器和取消按钮的小“ BUSY ”窗口。这将阻止用户在我的应用程序中执行任何其他操作,直到我完成长操作,但是如果他们单击取消它应该停止操作。
我尝试使用取消按钮创建一个简单的基于NSWindowController
的窗口并使窗口模态化,就像这样......
-(void) start_long_operation {
...
...
[self showBusy];
return; // return to continue the long operation
}
//抛出一个“忙”对话框,这样用户就无法做任何事情,直到完成
-(void) showBusy {
BusyNSWindow *loadingView = [[LoadingView alloc] initWithWindowNibName:@"LoadingView"];<br>
[[NSApplication sharedApplication] runModalForWindow:loadingView.window];
}
//如果取消点击,发出停止长时间操作的信号,关闭“忙碌”对话框
-(IBAction) cancel
{
// cancel was clicked inside the "busy" dialog box so signal process to stop long operation
}
但会发生的是它留在[[NSApplication sharedApplication] runModalForWindow:loadingView.window]
内并且不会返回。我希望它返回,以便在“忙”对话框启动时可以继续进行长时间的处理,所以这不会起作用。
任何人都知道如何创建一个小的“忙”窗口,它有一个取消按钮和一个微调器,防止用户在操作完成之前点击该窗口之外,但允许其余的程序继续正常运行以便它可以处理长时间的操作吗?
-rough_neck