2009-08-03 12 views
0

私はNSTableViewをコアデータに接続しています。ここに私がしたいことがあります。NSTableViewスイッチの列

表には2つの列があります。最初の列の編集が終了し、Tabキーを押して次の列に移動すると、最初の列のデータに基づいて2番目の列がプログラムで設定されます。これで私を助けるデリゲートメソッドがありますか?

ありがとうございました

答えて

1

これは、テーブルビューの仕組みではありません。すべての行は1つのアイテムであり、列はそのアイテムの異なるプロパティです。そうでなければ、枠組みとHIGと戦っている。

おそらくNSBrowserが必要です。

+0

Huh?それは意味をなさないのですか? – Jacob

+0

です。テーブルビューの各行には1つの項目が表示されます。質問者は、各列に異なるリストを表示するよう求めています。これは、(各アイテムのプロパティとは対照的に)各行に複数の異なるアイテムを配置します。別の列に複数のリストを表示するために使用するビューは、NSBrowserであり、NSTableViewではありません。 –

0

リンゴのフレームワークの仕組みを理解すれば、それほど難しくはありません。

最初のテキストボックスのテキストフィールドでイベントイベントを待機するために、コントローラオブジェクト(テーブルの背後にある)を「デリゲート」にするだけです。

ユーザーが最初のテキストボックスを離れたというメッセージをコントローラが受信すると、最初のテキストボックスのデータを読み取ってモデルオブジェクト(すべてのデータを格納)に渡すことができます。

あなたのモデルオブジェクトは、2番目のフィールドにどうあるべきかを更新する方法を知っているし、あなたのコントローラに戻ってメッセージを送信する2番目の列は変更されていることと、あなたが読んする必要が混乱している。このIF(

を更新する必要でしょうリンゴのドキュメントをMVC(Model View Controller)で表示します。

+0

最初の列と同じ数の項目が2列目に残っていると仮定しています。また、 "モデルオブジェクト"が何らかの形で複数のアイテムを表していると仮定し、各アイテムが第1列のアイテムを表していると、第2列にあるアイテムが分かることになります。コントローラーは最後の部分を手配することができましたが、フレームワークとHIGとの戦いはまだまだ巨大なハックです。 –

+0

ピーター、私はまだ私がしようとしていることを理解しているとは思わない。 2列の表を想像してみてください。ユーザーが最初の列に数値を入力し、次に2番目の列に最初の数値に2を掛けた数値を入力するとします。各行の両方の列は関連しており、1つのコアデータエンティティとして追加されます。 フィールドが切り替わったときに私に教える良いデリゲートメソッドを見つけることができませんでした。しかし、私は[tableView selectedCell]がいつ変化するかを知る必要があると思います。観察の仕方はあまり分かりません.IBオブジェクトからそのような値を観察できますか? –