我想使用这些方法:
- setTextAttributesForPositiveValues:
- setTextAttributesForNegativeValues:
像这样:
[nf setTextAttributesForPositiveValues:@{[UIColor colorWithRed:0.3 green:0.6 blue:1.0 alpha:1.0]:NSForegroundColorAttributeName}];
和
[nf setTextAttributesForNegativeValues:@{[UIColor colorWithRed:1.0 green:0.1 blue:1.0 alpha:1.0]:NSForegroundColorAttributeName}];
我正在尝试获取这样的属性文本:
NSAttributedString *str = [self.salaryFormatterColors attributedStringForObjectValue:@"Hi there" withDefaultAttributes:nil];
但是我回来了。
如何找回属性文本?
答案 0 :(得分:2)
Cracking open Hopper,从iOS 9开始,似乎iOS NSNumberFormatter
无条件地从nil
返回-attributedStringForObjectValue:withDefaultAttributes:
。我在文档中找不到这一点,所以这很有用,可能值得一试。
最好的办法是继承NSNumberFormatter
并自己实施-attributedStringForObjectValue:withDefaultAttributes:
。 NSFormatter
引用有一些实现建议:
实现子类时,如果显示的字符串应具有某些属性,则返回NSAttributedString对象。例如,您可能希望财务应用程序中的负值显示为红色文本。调用stringForObjectValue的实现:获取非属性字符串,然后用它创建一个NSAttributedString对象(参见initWithString :)。当值的变化保证时,使用属性默认字典重置字符串的属性(例如,负值变为正值)
我想你可以提交雷达请求为iOS实现此功能。
编辑:我已经在this gist中实施了这样的格式化程序。