我正在编写一个Mac OS X桌面Cocoa应用程序。我有一些带有一些值的NSTableView,我试图使用自定义的NSNumberFormatter来控制这些值。
我想要的行为:
当用户键入值时,如果他们键入 - ,我希望它的行为类似于计算器上的+/-按钮。因此,如果用户键入“500”,那么我想自动将该字符串替换为“-500”。
现在,我有一个NSNumberFormatter的工作子类,它处理这种情况并返回我想要的替换字符串。但是当我输入我的NSTableView时,我的日志显示“500-”被替换为“-500”,但NSTableView仅显示“500”并且未显示 - 或者在之前或之后。
我的xib或NSNumberFormatter子类中是否需要执行某些操作,以便NSTableView实际显示负数?
- (BOOL) isPartialStringValid:(NSString **)partialStringPtr
proposedSelectedRange:(NSRangePointer)proposedSelRangePtr
originalString:(NSString *)origString
originalSelectedRange:(NSRange)origSelRange
errorDescription:(NSString **)error
将此日志记录到控制台:
proposed string: 500-
replacement string: -500
但是NSTableView中的单元格之后仍然只显示“500”。
答案 0 :(得分:0)
事实证明,我的旧学校C技能只是生锈,我没有正确地传回新的琴弦。
我写错了:
partialStringPtr = &validString;
但正确的代码是:
*partialStringPtr = validString;