private void RemovePopup()
        {
            if (this.popupButton == null)
            {
                return;
            }

            this.popupButton.Activated -= PopupButton_Activated;
            this.popupButton.RemoveFromSuperview();
            this.popupButton.Dispose();
            this.popupButton = null;

            this.popupButtonList.RemoveAllItems();
            this.popupButtonList.Dispose();
            this.popupButtonList = null;
        }
        private void RequirePopup()
        {
            if (this.popupButton != null)
            {
                return;
            }

            RemoveComboBox();

            this.popupButton = new FocusablePopUpButton {
                AllowsExpansionToolTips = true,
                Cell =
                {
                    LineBreakMode      = NSLineBreakMode.TruncatingTail,
                    UsesSingleLineMode = true,
                },
                ControlSize = NSControlSize.Small,
                Font        = NSFont.SystemFontOfSize(NSFont.SystemFontSizeForControlSize(NSControlSize.Small)),
                TranslatesAutoresizingMaskIntoConstraints = false,
                StringValue    = String.Empty,
                ProxyResponder = new ProxyResponder(this, ProxyRowType.SingleView)
            };
            this.popupButton.ProxyResponder = new ProxyResponder(this, ProxyRowType.SingleView);
            this.popupButtonList            = new NSMenu();
            this.popupButton.Menu           = this.popupButtonList;
            this.popupButton.Activated     += PopupButton_Activated;

            AddSubview(this.popupButton);

            AddConstraints(new[] {
                NSLayoutConstraint.Create(this.popupButton, NSLayoutAttribute.CenterY, NSLayoutRelation.Equal, this, NSLayoutAttribute.CenterY, 1f, 0f),
                NSLayoutConstraint.Create(this.popupButton, NSLayoutAttribute.Left, NSLayoutRelation.Equal, this, NSLayoutAttribute.Left, 1f, 0f),
                NSLayoutConstraint.Create(this.popupButton, NSLayoutAttribute.Width, NSLayoutRelation.Equal, this, NSLayoutAttribute.Width, 1f, 0),
            });

            this.firstKeyView = this.popupButton;
            this.lastKeyView  = this.popupButton;
        }