2011-12-26 11 views
0

ウィンドウからオブジェクトを取得する最適な方法は何ですか?私は81のNSTextFieldsのスッドクのようなグリッドを持っており、IBOutletsを介してリンクされた81個の個々のNSTextFieldの代わりにNSTextFieldsの配列を持つことを好みます。例えばgetObjectメソッドとしてNSWindowのためにメッセージを送信する方法があった場合:例えば NSMutableArrayのこれらNSTextFieldsを追加するforループを使用し、次いで(NSStringの*)タイトルとは、それが理想的であろう。任意の提案をいただければ幸いです!ウィンドウからオブジェクトを取得するココア

- ルカ

答えて

2

あなたは次の操作を行うことができます:-awakeFromNib

NSArray *subviews = [_window subViews]; 
for(NSView *subview in subviews) 
{ 
    if([subview isKindOfClass:[NSTextField class]]) 
    { 
    [_textFields addObject:subview]; 
    } 
} 

今しつこいのために、私はあなたがそれをこの方法で行う必要はないと思います。 「Sudoku」ビューとして動作するカスタムNSViewを作成することは、コード内での使用が容易になり、アプリケーションのパフォーマンスが向上します。ウィンドウを81個のtextFieldで読み込むとかなり重くなり、もっと多くのメモリが使用されます。

+0

[OK]を、そこには問題は、私は別のビューでこれを入れて、とにかく、それはより多くのモジュラーかつスケーラブルにするためにビューコントローラを追加する程度ではなかったです。 IBOutletsを使用する代わりに、ウィンドウ/ビューから直接オブジェクトを取得できるかどうかを知りたかっただけです。ありがとう!ルーク – lukecampbell

2

あなたがNSTextFieldCellsのNSMatrixとオフはるかに良いだろうようにそれは私に聞こえます。

行列では、単一の出口接続(またはその他のプロパティ)で参照することができ、単一のオブジェクトであり、そしてそれは、行と列について知っている(線形インデックスへとから、それらを変換するので、必要はありません)。また、個別のセルにアクセスして個別に設定することもできます。例えば、塗りつぶし値を設定し、それらのセルを無効にしてユーザーが変更できないようにします。

関連する問題