「Xamarin.Macでカスタムコントロールを使用する」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
imported>Administrator
 
(同じ利用者による、間の1版が非表示)
66行目: 66行目:
 
*[[Xamarin.iOS/iOSデザイナーでカスタムコントロールを使用する]]
 
*[[Xamarin.iOS/iOSデザイナーでカスタムコントロールを使用する]]
 
*:iOSではInterface BuilderではなくiOSデザイナーにパワーアップしているため手順が若干異なる。
 
*:iOSではInterface BuilderではなくiOSデザイナーにパワーアップしているため手順が若干異なる。
 +
*[[Xamarin.Mac/NSOpenGLViewを使う]]
  
 
==参考文献==
 
==参考文献==

2017年12月21日 (木) 07:24時点における最新版

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

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

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

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

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

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

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

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

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

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