0

SourceList (NSOutlineView) があり、いくつかの項目のコンテキスト メニューを表示したいと考えています。周りを見回すと、Cocoa と Obj-C で答えが見つかりましたが、MonoMac と C# でこれを実行しようとしています。

NSOutlineView から継承し、MenuForEvent メソッドを実装する独自のカスタム クラスを作成する必要があるように思えます。しかし、古い標準の NSOutlineView を独自のカスタム クラスに置き換えようとすると、実行時に何も表示されません。私のコントローラーでは、View.ReplaceSubviewWith(oldTree, newTree) を呼び出します。

他に何かする必要がありますか?それとも、これを達成する別の方法がありますか?

4

1 に答える 1

1

そのようにインスタンスを交換しようとする代わりに、宣言的に行うことができるはずです。

カスタム アウトライン ビューを「登録」してください。

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

次に、Xcode デザイナーでアウトライン ビューを選択し、そのオブジェクトのカスタム クラスとして登録した名前を指定します。

ここに画像の説明を入力

そうすれば、ビューが nib から作成されるときに、ランタイムは最初にアウトライン ビューの適切なインスタンスを作成します。

于 2013-08-22T14:33:08.037 に答える