【问题标题】:MonoTouch UIButton, UIPickerView and Overriding Readonly InputViewMonoTouch UIButton、UIPickerView 和覆盖只读 InputView
【发布时间】:2013-01-29 02:26:27
【问题描述】:

谁能解释我如何创建一个UIButton,它允许我使用本文中的 InputView / Accessory 属性(默认为只读),但在 MonoTouch 中使用 C#

http://nomtek.com/tips-for-developers/working-with-pickers/

我已经尝试了基础,它不会编译 -

public class CustomUIButton : UIButton
{
    public CustomUIButton()
    {

    }

    public CustomUIButton(RectangleF rect): base(rect)
    {

    }

    public override UIView InputView
    {
        get 
        {
            return base.InputView;
        }

        [ADDED] set { base.InputView = ""; }**
    }
}

谢谢

【问题讨论】:

    标签: c# ios xamarin.ios xamarin


    【解决方案1】:

    您链接到的示例确实调用它完全实现该属性的基类(在 Objective-C 中)。

    C# 不喜欢这样,即你不能覆盖不存在的东西。然而,有几种方法可以解决这个问题。最简单的一种是为 setter 添加一个方法。例如

    class MyButton : UIButton {
        UIView input_view;
    
        public override UIView InputView {
            get {
                if (input_view == null)
                    return base.InputView;
                return input_view;
            }
        }
    
        public void SetInputView (UIView view)
        {
            input_view = view;
        }
    }
    

    【讨论】:

    • 嗨@poupou,谢谢,我使用了上面的代码并将 CanBecomeFirstResponder 覆盖为true;但是我的 UIPickerView 仍然没有像使用 UITextField 那样出现在按钮点击上,有什么我缺少的想法吗?
    • 没关系,现在效果很好,拼图的最后一部分是在按钮 TouchUpInside 处理程序中设置 button.BecomeFirstResponder。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 2015-12-26
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多