在MAC上,我必须显示一个带有取消按钮和微调器的繁忙窗口

时间:2013-02-10 19:27:20

标签: macos spinner nswindowcontroller

在使用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

0 个答案:

没有答案