「Xamarin.MacのNSTableViewでNSTableViewSourceを使う」の版間の差分
| 110行目: | 110行目: | ||
tableview.ScrollRowToVisible(clickedrow); | tableview.ScrollRowToVisible(clickedrow); | ||
}; | }; | ||
} | |||
</source> | |||
===セル編集=== | |||
Interface Builderを開き、各カラムに「Editable」のチェックを入れる(最初から入っていると思う)。 | |||
設定対象はカラムでありセルじゃないよ(Identity Inspectorを開くとクラスがNSTableColumnとなってるやつ)。 | |||
多分こんな構造になっているはず | |||
*NSTableView | |||
**NSTableColumn ←これに「Editable」を設定する | |||
***NSTextFieldCell | |||
次にデータソースの以下のメソッドをオーバーライドし「true」を返すようにする。 | |||
前述のEditableのチェックをしておくことでこのメソッドが呼ばれるようになり、このメソッドでtrueを返すと実際に編集が可能な状態となるようだ。 | |||
<source lang="csharp"> | |||
public class StudyTableViewSource : NSTableViewSource, IList<Study> | |||
{ | |||
// 〜〜〜省略〜〜〜 | |||
public override bool ShouldEditTableColumn(NSTableView tableView, NSTableColumn tableColumn, int row) | |||
{ | |||
return true; | |||
} | } | ||
</source> | </source> | ||