トップページドキュメント > テキストの入力と描画

フィールドエディターのカスタマイズ

MSWindowは基本的に1つのフィールドエディター(NSTextView)を管理します。しかし、アプリケーションによっては、このフィールドエディターそのものの機能を変更したいと思うかもしれません。そういった特殊なケースに対応できるように、NSWindowの持つフィールドエディター管理機能は、デリゲートによって拡張できるようになっています。

- (id)windowWillReturnFieldEditor:(NSWindow*)window toObject:(id)anObject
{
    if(anObject == myTextField)
    {
        return customFieldEditor;
    }
    return nil;
}

フィールドエディターを取得しようとしているオブジェクトが、NSWindowfieldEditor:forObject:メソッドを呼ぶと、NSWindowのデリゲートであるwindowWillReturnFieldEditor:toObject:メソッドが呼ばれるようになっています。

fieldEditor:forObject:の第二引数のオブジェクトが、そのままwindowWillReturnFieldEditor:toObject:の第二引数として渡されてくるので、どのオブジェクトがフィールドエディターを要求しているのか知る事ができます。

そして、windowWillReturnFieldEditor:toObject:の戻り値がフィールドエディターとして、fieldEditor:forObject:の戻り値になります。ただし、nilを返した場合は、NSWindowのデフォルトのフィールドエディターが返されます。

Copyright(C)2001-2010 STRIPE-NET. All Right Reserved.