代码之家  ›  专栏  ›  技术社区  ›  c-smile

NSPasteboard,如何获取html内容的URL

  •  0
  • c-smile  · 技术社区  · 9 年前

    我的应用程序接受从剪贴板粘贴或从浏览器拖动的HTML。

    我能够成功获取HTML(片段):

      NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
    
      NSString* nstext = [pasteboard stringForType:NSPasteboardTypeHTML];
    

    但不知道如何获取源文档的URL。

    尝试了以下操作:

      NSLog(@"url: %@", [NSURL URLFromPasteboard:pasteboard]);
    

    url: nil .

    原则上可能吗?

    1 回复  |  直到 9 年前
        1
  •  1
  •   TheNextman    9 年前

    这对我很有用。为了简洁起见,省略了错误检查等:

    NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
    NSData *data = [pasteboard dataForType:@"Apple Web Archive pasteboard type"];
    NSDictionary *plist = [NSPropertyListSerialization propertyListWithData:data
                                                                    options:NSPropertyListImmutable
                                                                     format:NULL
                                                                      error:nil];
    
    NSDictionary *values = [plist objectForKey:@"WebMainResource"];
    NSString *url = [values objectForKey:@"WebResourceURL"];