9

我发现关于 NSAttributedString 6 之前的 iOS 版本可用性的信息相互矛盾。如果它有点向后兼容,这将非常有用。

这里它说它从 iOS 4 开始可用: 为什么 iPhone 上没有 NSAttributedString?

在 Apple 网站上显示 iOS 6 及更高版本:https ://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSAttributedString_Class/Reference/Reference.html

我尝试在我的代码中实现它,如下所示:

NSAttributedString *commentString = [[NSAttributedString alloc] initWithString:@"I really love raisins" attributes:@{NSForegroundColorAttributeName: [UIColor blackColor]}];

它在 iOS 6 中有效,但在我尝试在 iOS 5 或 iOS 5.1 中运行时无效。我没有测试过早期版本。

我只是想使用旧版本中未包含的功能吗?

4

3 回答 3

14

它从iOS3.2开始就存在了。然而,在某些 UI 控件(如 UILabel、UIButton、UITextView 等)中使用它们的能力仅在 iOS6 之后才可用。您仍然可以使用 CoreText for < 6.0 来使用它们。

于 2012-11-15T00:24:09.703 回答
6

NSAttributeStringinitWithString:attributes:根据 iOS 参考文档,该方法自 iOS 3.2 以来就已经存在。NSAttributedString在 iOS 4.0 中添加了一些方法。所有作为UIKit类别添加的方法都是在 iOS 6.0 中添加的。

这条线的问题:

NSAttributedString *commentString = [[NSAttributedString alloc] initWithString:@"I really love raisins" attributes:@{NSForegroundColorAttributeName: [UIColor blackColor]}];

NSForegroundColorAttributeName直到 iOS 6.0 才添加常量。

所以虽然NSAttributedString已经存在了一段时间,但直到 6.0 才添加所有有用的东西。

于 2012-11-15T00:21:00.650 回答
1

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSAttributedString_Class/Reference/Reference.html

在 iOS 6 及更高版本中,您可以使用属性字符串在文本视图、文本字段和其他一些控件中显示格式化文本

它只是IOS6 afaik。该类在 IOS6 之前可用,但功能不可用。所以你的最终假设是正确的:)

于 2012-11-15T00:20:53.147 回答