0

我正在编写一个 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”。

4

1 回答 1

0

事实证明,我的旧学校 C 技能只是生疏了,而且我没有正确传递新字符串。

我写错了:

partialStringPtr = &validString;

但正确的代码是:

*partialStringPtr = validString;
于 2011-09-23T21:56:34.177 回答