1

我正在使用以下代码片段在使用 UIKit.h 的 iPad 项目中格式化数字,但我不知道如何使负数显示为红色。根据文档,我尝试过的方法不起作用。希望对此提出一些建议。

 NSNumberFormatter *decimalStyle = [[[NSNumberFormatter alloc] init] autorelease];
[decimalStyle setFormatterBehavior:NSNumberFormatterBehavior10_4];
[decimalStyle setNumberStyle:NSNumberFormatterDecimalStyle];
[decimalStyle setPositiveFormat:@"###,###,##0"];
[decimalStyle setNegativeFormat:@"(###,##0)"];
4

3 回答 3

4

目前你不能直接这样做,你可以做的是这样的:

UILabel *numberLabel = ...; // The label that will display your number
numberLabel.text = [decimalStyle stringFromNumber:myNumber];
numberLable.textColor = (myNumber.floatValue < 0.0f) ? [UIColor redColor] : [UIColor blackColor];
于 2012-07-09T17:37:55.987 回答
2

不确定这是否适用于 iOS,但在 OS XI 上这样做:

//create new instance of NSNumberFormatter
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];

//create mutable dictionary for storing formatting attributes
NSMutableDictionary *negativeNumberColor = [NSMutableDictionary dictionary];

//set red colour
[negativeNumberColor setObject:[NSColor redColor] forKey:@"NSColor"];

//apply red colour to number formatter
[numberFormatter setTextAttributesForNegativeValues: negativeNumberColor];

//set formatter on NSTable column cell
[[tableColumn dataCell] setFormatter: numberFormatter];
于 2012-11-01T21:36:12.777 回答
1

答案取决于您如何绘制文本,但想法是简单地以您想要的任何颜色绘制文本。例如,如果您在 UILabel 中绘制数字,则可以根据textColor需要将标签的 设置为红色或黑色。如果您使用 Core Text 绘制文本,您可以使用 NSAttributedString 并向相关文本添加颜色属性。如果您在 HTML 中呈现文本,您当然希望设置包含该文本的 HTML 标记的适当属性。

于 2012-07-09T17:38:19.003 回答