【问题标题】:show NSProgressIndicator on top of webview在 webview 上显示 NSProgressIndicator
【发布时间】:2015-03-02 06:55:59
【问题描述】:
我将进度指示器从 main.xib 拖放到 webview 上。
我需要在 webview 上显示 NSProgressIndicator ,而不是在同一个 webview 上显示。
主要思想是阻止最终用户访问 webview,直到并且除非 NSProgressIndicator.stopAnimation(self) 完成。
有人可以帮我解决这个问题吗?
【问题讨论】:
标签:
webview
nsprogressindicator
【解决方案1】:
//为了在 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(); //关闭模态面板