Super/Subscript 似乎在 iOS13 中被破坏 (NSAttributedString)
Super/Subscript appear to be broken in iOS13 (NSAttributedString)
尝试在 UITextView 中使用 NSAttributedString 显示 super/subscript 文本似乎在 iOS13 中被破坏了 - 除非有人知道否则?
奇怪的是,如果我使用 UIFont systemFont,它就可以工作 - 但如果我使用任何其他字体,它就不会。
在我的测试应用程序中设置 UITextView 的代码见下文。
- (void)viewDidLoad
{
[super viewDidLoad];
UIFont* font = [UIFont systemFontOfSize:32];
//UIFont* font = [UIFont fontWithName:@"Helvetica Neue" size:32];
//UIFont* font = [UIFont fontWithName:@"Courier" size:32];
//UIFont* font = [UIFont fontWithName:@"Arial" size:32];
NSMutableAttributedString* as = [[NSMutableAttributedString alloc] initWithString:@"Super2Script" attributes:@{NSFontAttributeName : font}];
[as addAttribute:(NSString*)kCTSuperscriptAttributeName value:@(1) range:NSMakeRange(5, 1)];
UITextView* tv = [[UITextView alloc] initWithFrame:CGRectZero];
tv.attributedText = as;
[tv sizeToFit];
[self.view addSubview:tv];
tv.center = CGPointMake(self.view.bounds.size.width / 2, self.view.bounds.size.height / 2);
}
简单 'fix' 这个。
kCTSuperscriptAttributeName 似乎不再适用于 iOS13(对于 non-system 字体。)您需要改用 NSSuperscriptAttributeName。不知道这个定义在哪里(header)所以实际需要的字符串值是 "NSSuperScript"
尝试在 UITextView 中使用 NSAttributedString 显示 super/subscript 文本似乎在 iOS13 中被破坏了 - 除非有人知道否则?
奇怪的是,如果我使用 UIFont systemFont,它就可以工作 - 但如果我使用任何其他字体,它就不会。
在我的测试应用程序中设置 UITextView 的代码见下文。
- (void)viewDidLoad
{
[super viewDidLoad];
UIFont* font = [UIFont systemFontOfSize:32];
//UIFont* font = [UIFont fontWithName:@"Helvetica Neue" size:32];
//UIFont* font = [UIFont fontWithName:@"Courier" size:32];
//UIFont* font = [UIFont fontWithName:@"Arial" size:32];
NSMutableAttributedString* as = [[NSMutableAttributedString alloc] initWithString:@"Super2Script" attributes:@{NSFontAttributeName : font}];
[as addAttribute:(NSString*)kCTSuperscriptAttributeName value:@(1) range:NSMakeRange(5, 1)];
UITextView* tv = [[UITextView alloc] initWithFrame:CGRectZero];
tv.attributedText = as;
[tv sizeToFit];
[self.view addSubview:tv];
tv.center = CGPointMake(self.view.bounds.size.width / 2, self.view.bounds.size.height / 2);
}
简单 'fix' 这个。
kCTSuperscriptAttributeName 似乎不再适用于 iOS13(对于 non-system 字体。)您需要改用 NSSuperscriptAttributeName。不知道这个定义在哪里(header)所以实际需要的字符串值是 "NSSuperScript"