gpt4 book ai didi

ios - 当我使用 NSUnderlineStyleAttributeName 在 NSTextStorage 上设置属性时,UITextView 文本正在丢失字体大小

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:48 26 4
gpt4 key购买 nike

在我的应用程序中,我有一个 UItextView,它的输入 View 有附件 View ,上面有几个按钮。

我正在尝试将已输入的文本更改为带下划线的文本。它工作正常,但在转换后丢失了字体和字体大小。

这是我正在做的:

NSRange selectedRange = [self.commentsTextView selectedRange];

NSDictionary *currentAttributesDict = [self.commentsTextView.textStorage attributesAtIndex:selectedRange.location
effectiveRange:nil];

NSDictionary *dict;

if ([currentAttributesDict objectForKey:NSUnderlineStyleAttributeName] == nil ||
[[currentAttributesDict objectForKey:NSUnderlineStyleAttributeName] intValue] == 0) {

dict = @{NSUnderlineStyleAttributeName: [NSNumber numberWithInt:1]};

}
else{
dict = @{NSUnderlineStyleAttributeName: [NSNumber numberWithInt:0]};
}

[self.commentsTextView.textStorage beginEditing];
[self.commentsTextView.textStorage setAttributes:dict range:selectedRange];
[self.commentsTextView.textStorage endEditing];

最佳答案

您正在使用只有 NSUnderlineStyleAttributeName 值的字典设置该文本范围的属性。

在您的 if...else 结构中,除了 NSUnderlineStyleAttributeName 之外,还为 dict 提供您想要的字体值字体大小

您之前是如何设置字体字体大小的?

来自 Apple 文档的 UITextView Overview 部分:

In iOS 6 and later, this class supports multiple text styles through use of the attributedText property. (Styled text is not supported in earlier versions of iOS.) Setting a value for this property causes the text view to use the style information provided in the attributed string. You can still use the font, textColor, and textAlignment properties to set style attributes, but those properties apply to all of the text in the text view.

https://developer.apple.com/library/ios/documentation/uikit/reference/uitextview_class/Reference/UITextView.html

当您为特定范围的文本设置属性时,它将覆盖该范围内以前存在的任何样式,仅使用新属性。

关于ios - 当我使用 NSUnderlineStyleAttributeName 在 NSTextStorage 上设置属性时,UITextView 文本正在丢失字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22795184/

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