1

XcodeとMacOSアプリケーションのプログラミングの初心者です。助けさせてください。制限文字セットを作成し、互換性のある文字(0-9、e 、.)でNSTextFieldをチェックするための書き込みアクション(または私が知らないイベント)がどのように理解できません。char set(NSCharacterSet)の作成方法を読みましたが、次に必要なものがわかりません。NSTextFieldに間違った文字を入力することを禁止したい。NSTextFieldのキーボードイベントやObjective-Cの他のイベントの処理はどのように機能しますか?例のように。

4

2 に答える 2

3

NSFormattertextFieldにを置きます。それがココアのやり方です:D

textField.formatter = myFormatter;

..たとえば、NSNumberFormatter、または必要に応じてカスタムのもの

見る

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSTextField_Class/Reference/Reference.html

于 2013-03-18T20:09:06.020 に答える
1

Cocoadevにあなたを助ける投稿を見つけました。(http://lists.apple.com/archives/cocoa-dev/2006/Aug/msg01492.html

次のように、テキストが変更されたときに通知される通知に登録する必要があります。

[[NSNotificationCenter defaultCenter] addObserver: self
    selector: @selector(textDidChange:)
    name: NSControlTextDidChangeNotification
    object: textField];

次に、textDidChange:メソッド(または名前を付けたもの)で、入力を変更できます。たとえば、大文字を確保するには、次のようにします。

[[textField setStringValue: [[textField stringValue] uppercaseString]];

桁数を制限したい場合は、NSMutableStringのdeleteCharactersInRange:メソッドを使用できます。テキストフィールドに表示されるテキストの種類を制限する場合は、許可されているすべての文字でNSMutableCharacterSetを使用してから、NSScannerのscanCharactersFromSet:intoStringメソッドを使用して不要な文字を除外できます。

于 2013-03-18T19:55:39.983 に答える