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阅读 11,144评论 1 32
  • 前言: 目录:一、WKWebView基本介绍二、WKWebView新特性三、WebKit框架概览四、WKWebVi...
    麦穗0615阅读 1,204评论 0 8
  • 前言 Xcode8发布以后,编译器开始不支持IOS7,所以很多应用在适配IOS10之后都不在适配IOS7了,其中包...
    Zoneday阅读 2,076评论 0 2
  • 姓名:胡青青 单位:宁波大发化纤公司 组名:六项精进260期乐观三组 【知~学习】 【六项精进】大纲背1遍共2遍 ...
    胡青青阅读 108评论 0 0
  • 5月26 今天上午去合庆香庭海小区去帮客户讲解按摩椅使用,客户没在威海住,老两口,不会操作了。 下午和候哥找货,检...
    b74c43a25eb2阅读 36评论 0 0