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

提供: MonoBook
2015年4月27日 (月) 02:13時点におけるimported>Administratorによる版
ナビゲーションに移動 検索に移動

要件

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

  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 = "押せ!";
        }
    }

デバッグ

カスタムツールボックスアイテム

カスタムプロパティ

注意事項

関連項目

類似項目

参考文献