Xamarin.Macでカスタムコントロールを使用する

提供: MonoBook
ナビゲーションに移動 検索に移動

要件[編集 | ソースを編集]

カスタムコンポーネントをデザイン領域上で扱えるようにするには以下の条件を満たす必要がある。

  1. NSViewを直接または間接的に継承していること。
  2. Objective-Cにクラス登録するためRegisterAttributeを持つこと。
  3. コンストラクタに以下の全パターンを実装しておくこと。
    1. IntPtrを引数とするコンストラクタを作る。
      土台にCustom View以外を利用した場合のインスタンス化時に呼ばれる。
      たとえばNSOpenGLViewを継承し、かつ継承元の設定くらいはGUIでいじりたい場合などが該当する。
    2. RectangleFを引数とするコンストラクタを作る。
      土台にCustom Viewを利用した場合のインスタンス化時に呼ばれる。
    3. NSCoderを引数とするコンストラクタを作る。
      Interface Builderでデザイン時に呼ばれる。
    using System;
    using System.Drawing;
    using MonoMac.Foundation;
    using MonoMac.AppKit;
    using MonoMac.CoreGraphics;

    [Register("MBButtonEx")]
    public class MBButtonEx : NSButton
    {

        public MBButtonEx() {}

        public MBButtonEx(NSCoder coder)
            : base(coder) {}

        public MBButtonEx(IntPtr handle)
            : base(handle)
        {
            InitUI();
        }
        public MBButtonEx(RectangleF frame)
            : base(frame)
        {
            InitUI();
        }

        public override void AwakeFromNib()
        {
            base.AwakeFromNib();
            InitUI();
        }

        void InitUI() 
        {
            this.TitleLabel.Text = "押せ!";
        }
    }

デバッグ[編集 | ソースを編集]

カスタムツールボックスアイテム[編集 | ソースを編集]

カスタムプロパティ[編集 | ソースを編集]

注意事項[編集 | ソースを編集]

関連項目[編集 | ソースを編集]

類似項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]