カスタム書式の作成


NSFormatter のカスタムサブクラスを作成して、日付と数値以外のデータ表現を書式設定できます。


NSFormatter をサブクラス化するには、少なくともこれらのメソッドを オーバーライド しなければなりません。


最初のメソッドでは、セルのオブジェクトを文字列表現に変換します。2 番目のメソッドでは、文字列をセルに関連したオブジェクトに変換します。


また、attributedStringForObjectValue:withDefaultAttributes: をオーバーライドして、オブジェクトをそれに関連した属性を持つ文字列に変換することもできます。たとえば、負の金額を赤で表示する場合は、このメソッドで属性が赤文字の文字列を返します。stringForObjectValue: を呼び出して、 attributedStringForObjectValue:withDefaultAttributes: で属性のない文字列を取得し、その文字列に適切な属性を適用します。


編集する文字列と表示する文字列が必ず異なる場合 (たとえば、通貨フィールドの表示バージョンにはドル記号が表示されますが、編集バージョンには表示されません) 、stringForObjectValue: に加えて editingStringForObjectValue: を実装して下さい


OS X では、各キーを押すたびにセルのテキストコンテンツを編集し、isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:
errorDescription:
および isPartialStringValid:newEditingString:errorDescription: を使用して、ユーザーが無効な文字を入力するのを防ぐことができます。社会保障番号のようなものにこの動的編集を適用することができます。データを入力する人は、書式が区切り文字を自動的に挿入するため、一度だけ番号を入力するだけですみます。


前の章 次の章



目次
Xcode の新機能

Cocoa のデータ書式プログラミングガイドへの序言
この文書の構成
  • 日付書式
  • 書式スタイルを使用して現在の日付と時刻をユーザーの設定に
  • 書式文字列を使用してカスタム書式の指定
  • 日付文字列の解析
    効率のため書式をキャッシュ
    固定書式のローカライズされていない日付用の Unix 関数の検討
  • 数値書式
  • 書式スタイルを使用してユーザーの設定で数値を表示
    書式文字列を使用してカスタム書式を指定
    パーセント
    命名法
  • 書式とユーザインタフェース要素
  • セルと書式の関連付け
    エラー処理用デリゲートメソッド
    カスタム書式の作成
    文書改訂履歴












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)












    トップへ(Core Foundation)