gpt4 book ai didi

objective-c - NSTextView(带有 NSTextTable)上的拖动选择只能选择一列吗?

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:11 25 4
gpt4 key购买 nike

如何使用包含 2 列 NSTextTable 的 NSAttributedString 在 NSTextView 上进行拖动选择,只选择第一列中的文本?

    [hi | 10:00 AM]
[hello | 10:01 AM]
[what are you doing? | 10:02 AM]
[nothing, you? | 10:03 AM]

当你点击拖动时,没有选择时间,只有对话。您可以在此处看到 Skype 执行此操作:

https://dl.dropboxusercontent.com/u/2510380/skype.mov

更新:

我认为 Skype 正在使用 WebView 和 CSS:

-webkit-user-select: none

然后

-webkit-user-select: text

对于可选择的部分。

最佳答案

不知道如何使用 NSTextView 解决这个问题,但我找到了一个使用 WebView + HTML5 + canvas + javascript 的解决方案

名称创建为 Canvas 对象,文本只是 html 中的普通文本:

选中文本后,它看起来像这样:

在复制+粘贴之后你只会得到对话结果:


我使用 Canvas 是因为使用了“-webkit-user-select: none;”在 div 中,如果您选择该 div 周围的文本,将复制文本。并且需要 javascript 来动态创建新 Canvas 。

var canvas = document.createElement("canvas");
canvas.width = 400;
canvas.height = 20;
canvas.setAttribute("style", "-webkit-user-select: none;");

var context=canvas.getContext("2d");
context.font="15px Arial";
context.fillText(text,0,20);

从 objective-c 调用 javascript 函数:

[_webView stringByEvaluatingJavaScriptFromString:@"myFunction()"];

所以这个解决方案很容易实现。

关于objective-c - NSTextView(带有 NSTextTable)上的拖动选择只能选择一列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19959990/

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