Я пишу настольное приложение 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».