在 UITextView 上调用 setAttributedText 会重置字体大小,我不知道为啥
Posted
技术标签:
【中文标题】在 UITextView 上调用 setAttributedText 会重置字体大小,我不知道为啥【英文标题】:Calling setAttributedText on UITextView resets the font size, and I can't figure out why在 UITextView 上调用 setAttributedText 会重置字体大小,我不知道为什么 【发布时间】:2014-12-16 07:43:45 【问题描述】:我在 *** 上阅读了有关 this annoying bug 的信息,如果您不将 UITextView
设为可选,设置文本会导致字体重置,这非常烦人。
这似乎只适用于设置正常的text
,而不是attributedText
,因为当我设置attributedText
时,它仍然会重置字体,即使我将文本视图设置为可选。
这真的很容易复制。例如,在情节提要中创建一个文本视图(我是怎么做的),设置字体,然后使用 myTextView.attributedText = NSAttributedString(string: "Lorem ipsum dolor.")
将属性文本设置为纯字符串,然后它会被重置。
我该如何阻止这种情况?超级烦人。
【问题讨论】:
由于字体包含在NSAttributedString
(与NSFontAttributedName
)中,我不认为这是正常行为,但至少,我并不感到惊讶。也许通过迭代[myTextView attributedText]
的前一个NSFontAttributedName
并将其应用于NSAttributedString
。
【参考方案1】:
我遇到了同样的问题,并以实用主义的方式解决了它,因为我确信这是 ios 中的一个错误。所以,我的看法可能不是最好的解决方案,但会奏效。为UITextView
编写一个类别,其中使用-(void)setAttributedTextWithoutResettingFont:(NSAttributedString *)attributedText;
之类的方法并实现它,以便您首先将当前字体保存在临时变量中,然后在@987654324 上调用实际的设置器setAttributedText:
@ 最后使用保存在临时变量中的字体再次更新字体。
【讨论】:
我不完全明白你的意思。你能详细说明一下吗? 好吧,你不明白哪一部分? :) 你知道类别是什么吗?以上是关于在 UITextView 上调用 setAttributedText 会重置字体大小,我不知道为啥的主要内容,如果未能解决你的问题,请参考以下文章
为啥 textView:shouldInteractWithTextAttachment:inRange: 永远不会在 UITextView 委托上被调用?
UITextView textViewShouldEndEditing / textViewDidEndEditing 未调用
UITextView 类中未调用 UIAlertView 委托方法