2013-08-22 55 views
0

我有一個SourceList(NSOutlineView),我想顯示一些項目的上下文菜單。環顧四周,我在Cocoa和Obj-C中找到了答案,但我正嘗試在MonoMac和C#中做到這一點。在NSOutlineView中顯示一些項目的上下文菜單

在我看來,我需要做我自己的自定義類,它繼承自NSOutlineView並實現MenuForEvent方法。但是,當我嘗試用我自己的自定義類替換舊的,標準的NSOutlineView時,在運行時不會顯示任何內容。在我的控制器中,我調用View.ReplaceSubviewWith(oldTree,newTree)。

我還需要做點別的嗎?或者也許有另一種方法來實現這一目標?

回答

1

而不是試圖交換這樣的實例,你應該能夠以聲明方式做到這一點。

確保您「註冊」您的自定義大綱視圖,例如:

[Register("MySourceList")] 
private class MySourceList : NSOutlineView 
{ 
    // Need this constructor for items created in .xib 
    public MySourceList(IntPtr handle) : base(handle) 
    { } 

然後,在Xcode的設計師,選擇您的大綱視圖,並指定該對象登記爲自定義類的名稱:

enter image description here

這樣一來,當從筆尖創建視圖,運行時將創建擺在首位的大綱視圖的正確實例。

相關問題