我们正在开发一个 C++ Qt 应用程序,它可以从外部应用程序复制选定的文本和/或图像,对其进行修改,然后将其粘贴回去。因为我们在 Mac 上,所以我们使用 Objective-C 来完成这部分。
我们在尝试从粘贴板获取图像时遇到问题。它适用于文本,但我们不确定如何处理图像或文本+图像的组合。由于我们不知道用户可能会选择什么,我们应该能够对粘贴板的内容进行通用检索以对其进行修改并将其放回粘贴板。
我们试过这个:
//we thought about retrieving some generic item from pasteboard, using NSPasteboardItem
NSArray *classes = [[NSArray alloc] initWithObjects:[NSPasteboardItem class], nil];
NSDictionary *options = [NSDictionary dictionary];
NSArray *auxArray = [[NSPasteboard generalPasteboard] readObjectsForClasses:classes options:options];
NSData *archived_data = [auxArray objectAtIndex:0];
我们处理文本的解决方案是:
NSString *text = [[NSPasteoard generalPasteboard] stringForType:NSStringPboardType];
string text_str = string([text UTF8String]);
它没有用,那么,我们如何从粘贴板中获取用户选择?我们需要获取原始字节或 rtf 内容以便根据需要对其进行修改,然后将其放回粘贴板并将其粘贴回去以替换原始用户选择。
谢谢!