我正在写一个Mac桌面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“。
发布于 2011-09-24 05:56:34
事实证明,我原来的C语言技能已经生疏了,而且我没有正确地传递回新的字符串。
我写错了:
partialStringPtr = &validString;但是正确的代码是:
*partialStringPtr = validString;https://stackoverflow.com/questions/7534867
复制相似问题