概要NSTextFieldにはフォーマッターの定義もできますが、文字の入力制限は実装されていないため、どのような文字でも入力できてしまいます。ここでは、任意のNSTextFieldに数値入力制限(数値以外は入力できない)の実装方法を示します。10.7以上iOS4以上の場合でも、UIオブジェクトに関係する部分を置き換えることで流用できます。下記の方法に従ってください。NSTextFieldの入力(つまり、変更)を受け取るには、NSNotificationCenterの「NSControlTextDidChangeNotification」通知を受け取れるようにする必要があります。object:nil];上記「object:nil」に任意のオブジェクトを渡すと、そのオブジェクトに関する通知のみがなされます。ここでは、デリゲート先で同じタイプのオブジェクトを一括で処理できるようにしていますので「nil」を渡しています。上記で定義した通知先を実装します。これは、上記「addObserver」で指定したオブジェクト内に設置する必要があります。下記でNSTextField以外は処理を行わないようにしています。該当する「identifier」かチェックしています。下記では「numerical_limits_identifier」と定義されていることが前提となります。正規表現を使い、数値以外を含んでいないかチェックします。match.numberOfRangesが1以外の場合には数値以外が含まれていることになる。下記で文字列以外の文字を空白で置換しています。setStringValue:str];}}}}}これで、NSTextFieldに数値制限を設けることができました。対象となるNSTextFieldオブジェクトの「identifier」に上記のように同じものを定義しておくと、ここに処理しなくて済みます。