72 lines
2.3 KiB
Objective-C
72 lines
2.3 KiB
Objective-C
//
|
||
// 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
|