When you have a WKWebView in an OSX application, when you press a <input type="file">
button, you can't select a file from your harddisk. How would you enable this feature?
I heard that normally you use:
func webView(sender: WebView!, runOpenPanelForFileButtonWithResultListener resultListener: WebOpenPanelResultListener!)
Which is part of the WebUIDelegate
but altho you set self.webView.UIDelegate = self
it does not get fired.
This is a known bug in WKWebView.
https://bugs.webkit.org/show_bug.cgi?id=137759
Here is the 100% working solution for WKWebview "File Upload" Problem.
You just need to implement the UIDelegate:
- (void)webView:(WKWebView *)webView runOpenPanelWithParameters:(WKOpenPanelParameters *)parameters initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSArray<NSURL *> *URLs))completionHandler;
Follow this link for more description about this delegate:
RunOpenPanel Delegate