首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebKit WebView粘贴:动态UTI失败

WebKit WebView粘贴:动态UTI失败
EN

Stack Overflow用户
提问于 2016-06-11 09:16:56
回答 1查看 55关注 0票数 0

当在OSX上从chrome复制URL并粘贴到可编辑的WebKit When视图时,什么都不会被粘贴。

我验证了NSPasteboard上有一些项,并且NSPasteboardItem有以下类型:

代码语言:javascript
复制
"dyn.ah62d4rv4gu8zs3pcnzme2641rf4guzdmsv0gn64uqm10c6xenv61a3k",
"dyn.ah62d4rv4gu8yc6durvwwaznwmuuha2pxsvw0e55bsmwca7d3sbwu",
"public.utf8-plain-text",
"dyn.ah62d4rv4gu8yg55wqzkgc65yqzvg82pwqvdg22p0r73fk8puqyuda8b1gy5xerwdgk2a",
"dyn.ah62d4rv4gu8yg55wqzkgc65yqzvg82pwqvdg22p0r73fk8puqyuda8b1gy5xerwdg3cu"

我知道这些是自动生成的,并映射到WebURLsWithTitlesPboardType。

在执行从safari到webview的相同操作时,它可以工作,因为它只包含

代码语言:javascript
复制
"public.utf8-plain-text"

是否有更好地处理这些UTI的已知解决办法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-12 13:26:22

Webkit Webkit视图似乎不支持动态UTI的粘贴操作。为此,我在webview:doCommandBySelector中截获粘贴:被截获时,重新创建了没有这些UTI的pasteboard项目:

代码语言:javascript
复制
- (void)cleanupPasteboard:(NSPasteboard *)pasteboard {
    NSMutableArray *newItems = [[NSMutableArray alloc] init];
    for (NSPasteboardItem *item in pasteboard.pasteboardItems) {
        NSPasteboardItem *newItem = [[NSPasteboardItem alloc] init];
        for (NSString *type in item.types) {
            if (![type hasPrefix:@"dyn"]) {
                [newItem setData:[item dataForType:type] forType:type];
            }
        }
        [newItems addObject:newItem];
    }
    [pasteboard clearContents];
    [pasteboard writeObjects:newItems];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37762008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档