1

現在、Apple の SourceView の例で遊んでいます。

タスクとして、アプリケーションの下部にあるメニューを右クリックのコンテキスト メニューに変更したいと考えていました。NSMenuDelegateこれで、メソッドを実装してmenuWillOpen、メニューで調整を行うことができました。

私が今直面している問題は、ツリーで右クリックしたオブジェクトに関する情報を取得できないことです。

アイテムのインデックスを取得しましたが、アイテム自体を取得できません。

NSInteger *clickedRow = [myOutlineView clickedRow];

これを試しましたが、何も得られません。

ChildNode *item = [myOutlineView itemAtRow:clickedRow];

誰かがここで私を助けてくれることを願っています。

ありがとう。

4

1 に答える 1

2

をどのように決定しclickedRowますか?
間違っていると思われることの 1 つは、整数ではなくclickedRow整数ポインター(NSInteger*) に格納していることです。
そのitemAtRow:ため、実際の行インデックスの代わりに任意のアドレスを使用してアイテムを検索する可能性があります。
別のことは、あなたが想定しているようにa ではなくitemAtRow:an を返すことです。 使用する必要がありますNSTreeControllerNode*ChildNode*

[[myOutlineView itemAtRow:clickedRow] representedObject];

代わりは

于 2013-04-19T10:33:06.660 に答える