MonoTouch UIButton、UIPickerView 和覆盖只读 InputView

Posted

技术标签:

【中文标题】MonoTouch UIButton、UIPickerView 和覆盖只读 InputView【英文标题】:MonoTouch UIButton, UIPickerView and Overriding Readonly 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 = ""; **
    

谢谢

【问题讨论】:

【参考方案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。

以上是关于MonoTouch UIButton、UIPickerView 和覆盖只读 InputView的主要内容,如果未能解决你的问题,请参考以下文章

如何在MonoTouch中为继承的视图创建UIAppearance代理?

摆脱圆形矩形按钮的圆角(MonoTouch)

Monotouch - UIActionSheet 无法在 iPad 上正确显示

这是 MonoTouch GC 中的错误吗?

MonoTouch - UIView.Animate 完成回调未在按钮 touchUpInside 委托内调用

单击重置(UIButton)应用程序已关闭