-2

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

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

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

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

4

1 回答 1

0

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

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

进口可可

类 ManuModalController: NSWindowController { @IBOutlet 弱 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(); //关闭模态面板

于 2015-03-13T05:43:42.467 回答