私はNSTableViewを持っており、selectedCell要素が変更されるたびに何かしたいと思います。いつ選択セルが変更されますか?
だから、私のテーブルビューはにtableViewと呼ばれ、これは私が観察したいものです。私は、キー値監視を使用してみました
[tableView selectedCell]
を、それが動作していないようでした、または多分私がいましたそれは間違っている。何か案は?
私はNSTableViewを持っており、selectedCell要素が変更されるたびに何かしたいと思います。いつ選択セルが変更されますか?
だから、私のテーブルビューはにtableViewと呼ばれ、これは私が観察したいものです。私は、キー値監視を使用してみました
[tableView selectedCell]
を、それが動作していないようでした、または多分私がいましたそれは間違っている。何か案は?
ココア自身のクラスのほとんどのプロパティは、観察できません。プロパティが観察可能な場合、そのプロパティのドキュメントは明示的にそう言います。ドキュメンテーションがプロパティが観測可能であると言っていない場合は、そうではないと仮定します。
さらに、存在しないプロパティは二重には観測できません。 NSTableViewとNSOutlineViewのドキュメントには、いずれも "selectedCell
"という名前のメソッドはありません。あなたはそれがないと仮定するべきです。
ユーザーがいつ別の行を選択するかを知りたい場合は、テーブルビューの代理人にしてください。返信する場合は、代理人のメッセージを送信します。
NSTableView
は、各列に対して1つのdataCell
オブジェクトを使用します。 selectedCell
が間違った方法です。 selectedColumn
を使用して選択した列を取得し、そのdataCell
を求めることができます。
そして:私はあなたがNSTableViewのデリゲートメソッドを探している tableViewSelectionDidChange:
とtableViewSelectionIsChanging:
selectedCellはNSTableViewから継承NSControlの方法であると思います。カーソルがNSTableViewの新しいセルにあることを通知できる他の方法はありますか? –
ああ、私の間違い。私はいつもテーブルビューにコントロールの性質があることを忘れています。それでも、私は 'selectedCell'がテーブルビュー上で動作するのかどうかはわかりません。ユーザがいつセルを編集しているかを検出するために、そのためのデリゲートメソッドもあります。 –
ちょうどあなたのデータを編集可能にしようとしているのであれば、セルごとのレベルでの作業はそれを行う方法ではありません。データソースであり、 'tableView:setObjectValue:forTableColumn:row:'を実装するか、配列を保持するコントローラにテーブルの列をバインドし、コントローラが編集を許可し、モデルオブジェクトが変更可能であることを確認しますあなたはそれらを別の方法で作った)。 –