//
// p l o t P o p u p V i e w C o n t r o l l e r . s w i f t
// w k t e s t
//
// C r e a t e d b y h r b r m s t r o n 9 / 9 / 1 9 .
// C o p y r i g h t © 2 0 1 9 B o b R u d i s . A l l r i g h t s r e s e r v e d .
//
import Cocoa
import WebKit
class plotPopupViewController : NSViewController {
var webView : WKWebView !
var urlPath : String = " "
open override func viewDidLoad ( ) {
super . viewDidLoad ( )
}
func setupWebView ( configuration : WKWebViewConfiguration ) {
webView = WKWebView ( frame : view . bounds , configuration : configuration )
webView . autoresizingMask = [ . width , . height ]
webView . uiDelegate = self
webView . navigationDelegate = self
view . addSubview ( webView )
}
func loadWebView ( urlIn : String ) {
urlPath = urlIn
NSLog ( urlPath )
// C h e c k f o r " / e x p o r t / "
// I f e x p o r t , t h e n g e t b r i n g u p a S a v e P a n e l a n d t h e n d o w n l o a d t h e f i l e t o t h a t l o c a t i o n
if let url = URL ( string : urlPath ) {
let urlRequest = URLRequest ( url : url )
webView . load ( urlRequest )
}
}
override func viewDidAppear ( ) {
super . viewDidAppear ( )
}
}
extension plotPopupViewController : WKUIDelegate {
func webViewDidClose ( _ webView : WKWebView ) {
self . view . window ? . close ( )
}
func webView ( _ webView : WKWebView , runOpenPanelWith parameters : WKOpenPanelParameters , initiatedByFrame frame : WKFrameInfo , completionHandler : @ escaping ( [ URL ] ? ) -> Void ) {
NSLog ( " savePanel! " )
let savePanel = NSSavePanel ( )
savePanel . canCreateDirectories = true
savePanel . beginSheetModal ( for : self . view . window ! ) { ( response ) in
if ( response = = NSApplication . ModalResponse . OK ) {
completionHandler ( [ savePanel . url ! ] )
} else {
completionHandler ( nil )
}
savePanel . close ( )
}
}
}
extension plotPopupViewController : WKNavigationDelegate {
open func webView ( _ webView : WKWebView , didStartProvisionalNavigation navigation : WKNavigation ! ) {
print ( " DID START " )
}
func webView ( _ webView : WKWebView , didFinish navigation : WKNavigation ! ) {
print ( " DID FINISH " )
}
}