在使用 XCODE 和 Objective-C 的 MAC 上,我需要显示一个小的“忙”窗口,其中包含一个微调器和一个取消按钮。这将阻止用户在我的应用程序中执行任何其他操作,直到我完成长操作,但是如果他们单击取消它应该停止操作。
我尝试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