// // PasteboardManager.m // msext // // Created on 2025/06/17. // Copyright © 2025年. All rights reserved. // #import "PasteboardManager.h" @implementation PasteboardManager #pragma mark - Public Methods + (nullable NSString *)safeReadPasteboardText { NSLog(@"🔍 [PasteboardManager] 尝试安全读取剪贴板内容"); if (@available(iOS 14.0, *)) { // iOS 14+ 先检查是否有文本内容,避免不必要的权限弹窗 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; if (pasteboard.hasStrings) { NSString *text = pasteboard.string; NSLog(@"✅ [PasteboardManager] 成功读取剪贴板文本: %@", text ? @"有内容" : @"空内容"); return text ?: @""; } else { NSLog(@"ℹ️ [PasteboardManager] 剪贴板中无文本内容"); return @""; } } else { // iOS 14以下直接读取 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; NSString *text = pasteboard.string; NSLog(@"✅ [PasteboardManager] 读取剪贴板文本: %@", text ? @"有内容" : @"空内容"); return text ?: @""; } } + (void)writeTextToPasteboard:(NSString *)text { NSLog(@"🔍 [PasteboardManager] 写入文本到剪贴板: %@", text ? @"有内容" : @"空内容"); UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; pasteboard.string = text ?: @""; NSLog(@"✅ [PasteboardManager] 文本已写入剪贴板"); } + (BOOL)hasTextInPasteboard { if (@available(iOS 14.0, *)) { BOOL hasText = [UIPasteboard generalPasteboard].hasStrings; NSLog(@"🔍 [PasteboardManager] 检查剪贴板是否有文本: %@", hasText ? @"是" : @"否"); return hasText; } else { // iOS 14以下版本需要直接访问内容来判断 NSString *text = [UIPasteboard generalPasteboard].string; BOOL hasText = (text != nil && text.length > 0); NSLog(@"🔍 [PasteboardManager] 检查剪贴板是否有文本: %@", hasText ? @"是" : @"否"); return hasText; } } + (void)clearPasteboard { NSLog(@"🔍 [PasteboardManager] 清空剪贴板"); UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; pasteboard.string = @""; NSLog(@"✅ [PasteboardManager] 剪贴板已清空"); } @end