问题标签 [nsmutableattributedstring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
19038 浏览

xcode - 在 NSScrollView (Swift) 中显示文本

刚开始学习 Swift 并创建了一个小的 macOS 应用程序,我想在其中使用 aNSScrollView来显示属性字符串。我试过了:

但这似乎不起作用。感觉很困惑,因为用 a 做同样的事情NSTextView就像一个魅力。

我在这里想念什么?

0 投票
25 回答
165566 浏览

ios - 在 Swift 中使用 NSMutableAttributedString 更改特定文本的颜色

我遇到的问题是我希望能够更改 TextView 中某些文本的 textColor。我正在使用连接字符串,并且只想要我附加到 TextView 文本中的字符串。看来我想使用的是NSMutableAttributedString,但我没有找到任何关于如何在 Swift 中使用它的资源。我到目前为止是这样的:

从这里我知道我需要找到需要更改其 textColor 的单词范围,然后将它们添加到属性字符串中。我需要知道的是如何从attributeString中找到正确的字符串,然后改变它们的textColor。

由于我的评分太低,我无法回答自己的问题,但这是我找到的答案

我通过翻译从翻译一些代码找到了自己的答案

更改 NSAttributedString 中子字符串的属性

以下是 Swift 中的实现示例:

由于我想更改多个字符串的 textColor,我将创建一个辅助函数来处理此问题,但这适用于更改 textColor。

0 投票
1 回答
1562 浏览

ios - NSMutableAttributedString 崩溃应用

我在设置 this 时的范围(我认为)有问题NSMutableAttributedString。谁能告诉我为什么这会使我的程序崩溃?在我看来是对的,但我显然错了!谢谢。

0 投票
2 回答
594 浏览

ios - 比较 2 个相同的 NSAttributedStrings 不起作用

为什么比较相同NSAttributedString不起作用?

我有以下内容:

0 投票
1 回答
224 浏览

objective-c - 如何更改从原始字符串替换的单词的颜色?

例如,有一个名为“input”的 NSString,它将用户在文本视图中键入的内容转换为 NSString。

所以“输入”取决于用户输入的任何内容。现在,以下代码用于更改用户输入的单词,将其更改为另一个单词。这仅在按下“转换”按钮后发生。

根据用户输入的内容,有超过 500 个单词会自动替换。在完成所有扫描后,这是最后的代码。它使正确的自动大写。

所以可以看到“input”被做成了一个副本,现在变成了“input2”。被替换的输入是在另一个文本视图中出现的。像这样:

而这句话很好。如果我说:“你好!你好吗?” 它会变成“问候!你好吗?” 我的问题是,在输出文本视图中,我希望从原始文字中更改的任何单词都变为红色,以便用户知道发生了什么变化。

我试过这个,但这没有任何作用。

我尝试的另一种方法是添加:

在里面我添加了上面的代码,但它什么也没做。我看到的最简单的方法是这样的,如果输入(原始)与 input2 不匹配,那么让它改变不匹配的颜色。

0 投票
8 回答
14207 浏览

ios - 设置 NSLinkAttributeName 字体颜色

我觉得我错过了一些简单的东西,但我似乎无法找到如何做到这一点:

我将属性设置为这样的链接:

这可行,但链接是蓝色的,我似乎无法更改颜色。这会将除链接之外的所有内容设置为白色:

是否有另一个我似乎找不到特定于链接的颜色属性名称?

0 投票
3 回答
45820 浏览

swift - 使用 Swift 将 NSAttributedString 转换为 NSString

我有一个NSMutableAttributedString并且想将它转换回一个简单的String.

我怎样才能String摆脱NSMutableAttributedString最简单的?

0 投票
4 回答
15689 浏览

ios - Add NSUnderlineStyle.PatternDash to NSAttributedString in Swift?

I'm trying to add an underline to some text in my Swift app. This is the code I have currently:

But I get this error on the text.addAttributes line:

NSString is not identical to NSObject

How can I add an attribute contained in an enum to an NSMutableAttributedString in Swift?

0 投票
2 回答
1423 浏览

ios - 在 Swift 中为 NSMutableAttributedString 设置 kCTUnderlineStyleAttributeName

kCTUnderlineStyleAttributeName 的文档传达了以下内容:

kCTUnderlineStyleAttributeName 要在渲染时应用的下划线样式,适用于应用此属性的文本。值必须是 CFNumber 对象。默认为 kCTUnderlineStyleNone。设置除 kCTUnderlineStyleNone 以外的值来绘制下划线。此外,CTUnderlineStyleModifiers 中列出的常量可用于修改下划线的外观。下划线颜色由文本的前景色决定。

setAttributes 函数的签名如下:

我遇到的问题是文档似乎暗示CTUnderlineStyle.Single可以(并且应该在 Swift 中)用作kCTUnderlineStyleAttributeName键的值。但是,前者是一个结构体,因此不符合字典值类型所要求的 AnyObject 协议。

有任何想法吗?

0 投票
1 回答
791 浏览

ios - NSMutableAttributedString 不会显示以非零索引开始的属性

更新:

我创建了一个非常简单的独立项目来演示该错误。如果有人想拉同样的东西,看看他们是否能发现我哪里出错了,我一定会很感激的。没有太多代码可以查看。这里的公共回购: https ://github.com/reidnez/NSAttributedStringBugDemo

我在这里遇到了一个非常奇怪的问题:我有一个表格视图。每个单元格都有一个包含 1-3 个单词的标题标签和一个包含多个 CSV 关键字的关键字标签。我也有一个搜索栏。要求是当用户在搜索栏中键入时,每个单元格的标题和关键字的任何部分匹配都会突出显示。截图:

一切看起来都应该搜索

第一张图是好的。在第二张图片中,应突出显示标题标签的“an”。但是,正如你所看到的,没有那么多......

正如您在上面看到的,这在“关键字”标签上非常有效。这两个标签的属性字符串都是由我编写的类别创建的(代码如下)。在两个字符串上调用相同的方法,并且与调试器告诉我的行为相同。UI 讲述了一个不同的故事。

我已经多次通过调试器,并且在所有情况下,属性字符串似乎都已正确配置。我还验证了其他东西没有调用[tableView reloadData],并且我的代码中没有其他地方覆盖标签的值。这是在调试器中匹配“Fang”的“an”的样子,就在单元格在末尾返回之前cellForRowAtIndexPath

对我来说看起来不错……这正是我想要的。但是当单元格渲染时,看不到任何亮点!更奇怪的是,作为一个实验,我尝试将标签设置为我在 cellForRow 中创建的完全任意的属性字符串:

这也失败了。根本没有突出显示......但我可以突出显示 {0, 1} 到 {0, fake.length} 范围内的任何子字符串,并且它的行为符合预期。同样,它似乎拒绝突出显示任何不从索引 0 开始的子字符串——但仅用于标题标签。

我失去理智了吗?我错过了什么?

下面是我的类别...但我相当有信心问题不在于这里,因为它对关键字字符串非常有效,并且(再次)在单元格返回之前似乎正确设置了属性: