0

OS X アプリで NSFormatter をオーバーライドするクラスを使用しようとしています。本の例を試してみましたが、それは古いバージョンの XCode のものです。私の問題は、NSTextfield のフォーマッタを設定する方法がわからないことです。Xcoded に IB が組み込まれたために何かが変わったのか、それとも何か間違ったことをしているのかはわかりません。以前はテキスト フィールドのクリックを制御できたようで、メニューが表示されました。メニューのアウトレットセクションには、「フォーマッター」の選択が表示されると思われます。それはメニューのアウトレットセクションにリストされていません。

違いはないと思いますが、私の NSTextfield は NSScrollview にあります。私はまだ Cocoa の初心者です (C# と C++ のバックグラウンドを持っています)。

4

1 に答える 1

1

次のようにNSNumberFormatterを単純にサブクラス化できます。

.h

@interface NumberFormatterSubclass : NSNumberFormatter {

}

@end

メートル

@implementation NumberFormatterSubclass


- (BOOL)isPartialStringValid:(NSString **)partialString
   proposedSelectedRange:(NSRangePointer)proposedSelRange
          originalString:(NSString *)origString
   originalSelectedRange:(NSRange)origSelRange
        errorDescription:(NSString **)error 
{

    if ([*partialString length] > 4) { 
        return NO;
    }


    return YES;
}

NSTextFieldにNSNumberFormatterを追加し、 NSNumberFormatterクラスをID インスペクターで作成したサブクラスに変更することを忘れないでください。

于 2012-02-20T15:50:21.683 に答える