注意:我提出这个问题的时间是Apple刚刚发布iOS 7. Apple在iOS 7之后用UITextView
重新实现了Text Kit
UITextView
一些错误的时间。这个问题的问题就是其中之一。但现在已经修好了。
我的应用中有UITextView
在IB中配置。文本视图有一些默认文本,其字体大小为60.0f
。文本视图使用纯字符串来呈现文本。如果我在应用程序运行时以编程方式更改文本视图的text属性:
self.textView.text = @"some text different from default text";
文本视图会将字体更改回默认字体。
以编程方式配置字体可以解决这个问题:self.textView.font = [UIFont systemFontOfSize:60.0f];
这是新UITextView
的错误。
答案 0 :(得分:7)
当您取消选中IB中的可选项时,会出现奇怪的行为。 如果选中“可选”,则“文本视图”具有正确的字体。 如果您不想选择它,可以在代码中添加textView.selectable = NO
答案 1 :(得分:1)
您是否注意到字体选项卡右上角的T符号使用此符号来设置字体大小
答案 2 :(得分:0)
首先,如果您通过IB设置字体并在运行时以编程方式在viewdidload方法中设置字体,那么xcode将始终选择以编程方式设置的值。
要以编程方式设置字体,请使用:
[self.textview setFont:[UIFont fontWithName:@"fontname" size:128.0]];
答案 3 :(得分:0)
如果您更改self.textview.text
,则必须在此之后设置新的字体和大小。或者,在iOS7 +中,您可以更改self.textview.attributedText
,以便您可以先从之前的文本中获取所有属性,然后使用其中一种方法更改NSAttributedString
中的文本。之后,您使用结果归因字符串更改self.textview.attributedText
。这样做将重用您在IB中指定的所有属性。
答案 4 :(得分:-1)
当iOS 7刚刚由Apple发布时,这是UITextView
的错误。它现在已经修好了
答案 5 :(得分:-2)
// main.m
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[])
{
@autoreleasepool {
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"UIDisableLegacyTextView"];
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
iOS7 textview有很多bug。
此代码是为了“使用到iOS6 Textview”
但是这段代码不是苹果办公室。