在webview上显示NSProgressIndicator

时间:2015-03-02 06:56:00

标签: webview nsprogressindicator

我将progressindicator从main.xib拖放到webview上。

我需要在webview上显示NSProgressIndicator,而不是在同一个webview上显示。

主要思想是阻止最终用户访问webview,直到NSProgressIndicator.stopAnimation(self)完成为止。

有人可以帮我解决这个问题吗。

1 个答案:

答案 0 :(得分:0)

//为了在appdelegate.swift上显示一个模型面板,我们需要//遵循两个步骤。

// step1:从NSWindowController创建一个cocoa类,如下所示。

导入Cocoa

类ManuModalController:NSWindowController {     @IBOutlet weak var progressIndicator1:NSProgressIndicator!

var mainW: NSWindow = NSWindow()

override init()
{
    super.init()
}

override init(window: NSWindow!)
{
    super.init(window: window)
}

required init?(coder: (NSCoder!))
{
    super.init(coder: coder);
}

override func windowDidLoad()
{
    super.windowDidLoad()
}

func beginSheet(mainWindow: NSWindow)
{
    self.mainW = mainWindow;
    NSApp.beginSheet(self.window!, modalForWindow:  self.mainW, modalDelegate: self, didEndSelector:nil, contextInfo: nil);
    progressIndicator1.startAnimation(self);
}

@IBAction func btnClicked(sender: AnyObject)
{
    self.endSheet();
}

func endSheet()
{
    NSApp.endSheet(self.window!);
    self.window!.orderOut(mainW);
}

}

// step2:在appdelegate.swift中创建modalcontroller的对象,如下所示

var mdlwin = ManuModalController(windowNibName:" ManuModalController");

mdlwin.beginSheet(self.window); //显示模态面板    mdlwin.endSheet(); //关闭模态面板