From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001 From: 单军华 Date: Wed, 11 Jul 2018 10:47:42 +0800 Subject: [PATCH] 首次上传 --- screendisplay/Pods/YYText/YYText/Utility/UIPasteboard+YYText.m | 146 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 146 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/YYText/YYText/Utility/UIPasteboard+YYText.m b/screendisplay/Pods/YYText/YYText/Utility/UIPasteboard+YYText.m new file mode 100755 index 0000000..29a86f2 --- /dev/null +++ b/screendisplay/Pods/YYText/YYText/Utility/UIPasteboard+YYText.m @@ -0,0 +1,146 @@ +// +// UIPasteboard+YYText.m +// YYText <https://github.com/ibireme/YYText> +// +// Created by ibireme on 15/4/2. +// Copyright (c) 2015 ibireme. +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import "UIPasteboard+YYText.h" +#import "NSAttributedString+YYText.h" +#import <MobileCoreServices/MobileCoreServices.h> + + +#if __has_include("YYImage.h") +#import "YYImage.h" +#define YYTextAnimatedImageAvailable 1 +#elif __has_include(<YYImage/YYImage.h>) +#import <YYImage/YYImage.h> +#define YYTextAnimatedImageAvailable 1 +#elif __has_include(<YYWebImage/YYImage.h>) +#import <YYWebImage/YYImage.h> +#define YYTextAnimatedImageAvailable 1 +#else +#define YYTextAnimatedImageAvailable 0 +#endif + + +// Dummy class for category +@interface UIPasteboard_YYText : NSObject @end +@implementation UIPasteboard_YYText @end + + +NSString *const YYTextPasteboardTypeAttributedString = @"com.ibireme.NSAttributedString"; +NSString *const YYTextUTTypeWEBP = @"com.google.webp"; + +@implementation UIPasteboard (YYText) + + +- (void)setYy_PNGData:(NSData *)PNGData { + [self setData:PNGData forPasteboardType:(id)kUTTypePNG]; +} + +- (NSData *)yy_PNGData { + return [self dataForPasteboardType:(id)kUTTypePNG]; +} + +- (void)setYy_JPEGData:(NSData *)JPEGData { + [self setData:JPEGData forPasteboardType:(id)kUTTypeJPEG]; +} + +- (NSData *)yy_JPEGData { + return [self dataForPasteboardType:(id)kUTTypeJPEG]; +} + +- (void)setYy_GIFData:(NSData *)GIFData { + [self setData:GIFData forPasteboardType:(id)kUTTypeGIF]; +} + +- (NSData *)yy_GIFData { + return [self dataForPasteboardType:(id)kUTTypeGIF]; +} + +- (void)setYy_WEBPData:(NSData *)WEBPData { + [self setData:WEBPData forPasteboardType:YYTextUTTypeWEBP]; +} + +- (NSData *)yy_WEBPData { + return [self dataForPasteboardType:YYTextUTTypeWEBP]; +} + +- (void)setYy_ImageData:(NSData *)imageData { + [self setData:imageData forPasteboardType:(id)kUTTypeImage]; +} + +- (NSData *)yy_ImageData { + return [self dataForPasteboardType:(id)kUTTypeImage]; +} + +- (void)setYy_AttributedString:(NSAttributedString *)attributedString { + self.string = [attributedString yy_plainTextForRange:NSMakeRange(0, attributedString.length)]; + NSData *data = [attributedString yy_archiveToData]; + if (data) { + NSDictionary *item = @{YYTextPasteboardTypeAttributedString : data}; + [self addItems:@[item]]; + } + [attributedString enumerateAttribute:YYTextAttachmentAttributeName inRange:NSMakeRange(0, attributedString.length) options:NSAttributedStringEnumerationLongestEffectiveRangeNotRequired usingBlock:^(YYTextAttachment *attachment, NSRange range, BOOL *stop) { + + // save image + UIImage *simpleImage = nil; + if ([attachment.content isKindOfClass:[UIImage class]]) { + simpleImage = attachment.content; + } else if ([attachment.content isKindOfClass:[UIImageView class]]) { + simpleImage = ((UIImageView *)attachment.content).image; + } + if (simpleImage) { + NSDictionary *item = @{@"com.apple.uikit.image" : simpleImage}; + [self addItems:@[item]]; + } + +#if YYTextAnimatedImageAvailable + // save animated image + if ([attachment.content isKindOfClass:[UIImageView class]]) { + UIImageView *imageView = attachment.content; + Class aniImageClass = NSClassFromString(@"YYImage"); + UIImage *image = imageView.image; + if (aniImageClass && [image isKindOfClass:aniImageClass]) { + NSData *data = [image valueForKey:@"animatedImageData"]; + NSNumber *type = [image valueForKey:@"animatedImageType"]; + if (data) { + switch (type.unsignedIntegerValue) { + case YYImageTypeGIF: { + NSDictionary *item = @{(id)kUTTypeGIF : data}; + [self addItems:@[item]]; + } break; + case YYImageTypePNG: { // APNG + NSDictionary *item = @{(id)kUTTypePNG : data}; + [self addItems:@[item]]; + } break; + case YYImageTypeWebP: { + NSDictionary *item = @{(id)YYTextUTTypeWEBP : data}; + [self addItems:@[item]]; + } break; + default: break; + } + } + } + } +#endif + + }]; +} + +- (NSAttributedString *)yy_AttributedString { + for (NSDictionary *items in self.items) { + NSData *data = items[YYTextPasteboardTypeAttributedString]; + if (data) { + return [NSAttributedString yy_unarchiveFromData:data]; + } + } + return nil; +} + +@end -- Gitblit v1.8.0