WKWebView打不开文件获取对话框(NSOpenPanel)

1. self.webView.UIDelegate = self;

2. 实现代理在本地打开NSOpenPanel,并将解决回调回去

- (void)webView:(WKWebView*)webView runOpenPanelWithParameters:(WKOpenPanelParameters*)parameters initiatedByFrame:(WKFrameInfo*)frame completionHandler:(void(^)(NSArray *_NullableURLs))completionHandler{

    NSOpenPanel* panel = [NSOpenPanel openPanel];

    if(@available(macOS10.12, *)){

        panel.allowsMultipleSelection = parameters.allowsMultipleSelection;

    }else{

        [panelsetAllowsMultipleSelection:NO];  //是否允许多选file

    }

    if(@available(macOS10.13.4, *)){

        panel.canChooseDirectories = parameters.allowsDirectories;

    }else{

        panel.canChooseDirectories=NO//是否允许选目录

    }

    panel.allowedFileTypes = @[@"png", @"jpg", @"BMP", @"TIFF"];//图片类型

    NSModalResponseresult = [panelrunModal];

    if(result ==NSModalResponseOK){

        completionHandler([panelURLs]);

    }else{

        completionHandler(nil);

    }

//    [panel beginWithCompletionHandler:^(NSModalResponse result) {

//        if (result == NSModalResponseOK) {

//            completionHandler([panel URLs]);

//        }

//    }];

}

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 10,588评论 1 32
  • 前言: 目录:一、WKWebView基本介绍二、WKWebView新特性三、WebKit框架概览四、WKWebVi...
    麦穗0615阅读 846评论 0 8
  • 前言 Xcode8发布以后,编译器开始不支持IOS7,所以很多应用在适配IOS10之后都不在适配IOS7了,其中包...
    Zoneday阅读 1,841评论 0 2
  • 姓名:胡青青 单位:宁波大发化纤公司 组名:六项精进260期乐观三组 【知~学习】 【六项精进】大纲背1遍共2遍 ...
    胡青青阅读 61评论 0 0
  • 5月26 今天上午去合庆香庭海小区去帮客户讲解按摩椅使用,客户没在威海住,老两口,不会操作了。 下午和候哥找货,检...
    b74c43a25eb2阅读 29评论 0 0