gpt4 book ai didi

cocoa - 强制从 Cocoa WebView 进行纯文本复制

转载 作者:行者123 更新时间:2023-12-03 16:20:38 24 4
gpt4 key购买 nike

我有一个 Cocoa Webview 子类,我需要将从它复制的所有文本都变成纯文本。我尝试过覆盖 -copy 和 -pasteboardTypesForSelection,但没有运气,并且调试代码似乎表明这些方法从未被调用。我还尝试在 css 中将 -webkit-user-modify 设置为 read-write-plaintext-only (这在这种情况下也有效),但这似乎没有效果。

有什么想法吗?

最佳答案

好吧,这似乎可行(使用子类实例作为其自己的编辑委托(delegate)):

- (BOOL)webView:(WebView *)webView doCommandBySelector:(SEL)command
{
if (command == @selector(copy:)) {
NSString *markup = [[self selectedDOMRange] markupString];
NSData *data = [markup dataUsingEncoding: NSUTF8StringEncoding];
NSNumber *n = [NSNumber numberWithUnsignedInteger: NSUTF8StringEncoding];
NSDictionary *options = [NSDictionary dictionaryWithObject:n forKey: NSCharacterEncodingDocumentOption];
NSAttributedString *as = [[NSAttributedString alloc] initWithHTML:data options:options documentAttributes: NULL];
NSString *selectedString = [as string];
[as autorelease];

NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
[pasteboard clearContents];
NSArray *objectsToCopy = [NSArray arrayWithObject: selectedString];
[pasteboard writeObjects:objectsToCopy];
return YES;
}
return NO;
}

不确定这是否是最好的方法。

关于cocoa - 强制从 Cocoa WebView 进行纯文本复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7539193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com