MacOSXデスクトップCocoaアプリを書いています。いくつかの値を持つNSTableViewがあり、カスタムNSNumberFormatterを使用してそれらの値を制御しようとしています。
私の望ましい行動:
ユーザーが値を入力しているときに-と入力すると、電卓の+/-ボタンと同じように動作するようにします。したがって、ユーザーが「500-」と入力した場合、その文字列を自動的に「-500」に置き換えたいと思います。
これで、この状況を処理して目的の置換文字列を返すNSNumberFormatterの動作するサブクラスができました。しかし、NSTableViewに入力すると、ログに「500-」が「-500」に置き換えられていることが示されますが、NSTableViewには「500」のみが表示され、前または後のどちらにも-は表示されません。
NSTableViewが実際に負の数を表示するように、xibまたはNSNumberFormatterサブクラスで行う必要があることはありますか?
- (BOOL) isPartialStringValid:(NSString **)partialStringPtr
proposedSelectedRange:(NSRangePointer)proposedSelRangePtr
originalString:(NSString *)origString
originalSelectedRange:(NSRange)origSelRange
errorDescription:(NSString **)error
これをコンソールに記録しています:
proposed string: 500-
replacement string: -500
ただし、NSTableViewのセルには、その後も「500」と表示されます。