1

NSOutlineView任意の要素を右クリックしたときにコンテキスト メニューとして表示されるメニューを作成しました。

今、私は2つの問題を抱えています。

  1. コンテキスト メニューの任意の機能に応じて動作するために、右クリックされた要素を特定するにはどうすればよいですか。
  2. 右クリックした要素に応じてメニュー項目を削除または無効にするために実際に開く前に、コンテキスト メニューを変更するにはどうすればよいですか?
4

2 に答える 2

1

clickedRowメソッド (から継承)はNSTableView、行番号を提供します。

行番号は、 を使用して項目に変換できNSOutlineViewますitemForRow

メニュー部分については、メニューが表示される直前にNSMenuDelegateメソッドが呼び出されるので、必要に応じて変更できます。menu:updateItem:atIndex:shouldCancel:

docsによると、も実装する必要がありますnumberOfItemsInMenu:

アウトライン ビューとメニューの両方に同じオブジェクトをデリゲートとして設定できます。

于 2013-04-16T13:00:07.527 に答える