【问题标题】:Monotouch: UITextField.LeftView works, RightView does notMonotouch:UITextField.LeftView 有效,RightView 无效
【发布时间】:2011-03-21 13:51:28
【问题描述】:

我在这里使用的是最新版本的 MT。 UITextField 中没有 RightView 属性。好像忘记绑定了。可以手动绑定吗?

已解决 - 阅读完毕

编辑:感谢 Geoff,我越来越接近了。使用LeftView(!)我让这段代码正常工作:

var _entry = new UITextField ();
UIButton oLeftButton = UIButton.FromType(UIButtonType.DetailDisclosure);
_entry.LeftView = oLeftButton;
_entry.LeftViewMode = UITextFieldViewMode.Always;

尝试使用手动绑定的 RightView:

var _entry = new UITextField ();
UIButton oRightButton = UIButton.FromType(UIButtonType.DetailDisclosure);
Messaging.void_objc_msgSend_intptr (_entry.Handle, Selector.GetHandle ("setRightView:"), oRightButton.Handle);
// Code crashes here with a NULL ref in ObjC.
_entry.RightViewMode = UITextFieldViewMode.Always;

还有另一个编辑: MT 3.x 中存在一个错误,该错误将在 MT4 中修复,并在访问 RightViewMode 属性时导致崩溃。 RightViewMode 必须像这里演示的那样直接设置。

var _entry = new UITextField ();
UIButton oRightButton = UIButton.FromType(UIButtonType.DetailDisclosure);
// Set RightView directly.
Messaging.void_objc_msgSend_intptr (_entry.Handle, Selector.GetHandle ("setRightView:"), oRightButton.Handle);
// Set RightViewMode directly.
Messaging.void_objc_msgSend_int (_entry.Handle, Selector.GetHandle ("setRightViewMode:"), (int)UITextFieldViewMode.Always);

【问题讨论】:

    标签: xamarin.ios


    【解决方案1】:

    是的,这是遗漏的,它将在 MonoTouch 4 Alpha 3 中修复。

    您可以像这样手动调用它:

    Runtime.GetNSObject (Messaging.intptr_objc_msgSend (textField.Handle, Selector.GetHandle ("leftView")));
    

    【讨论】:

    • “GetNSObect 方法没有重载需要 2 个参数”。我尝试了 UITextField.GetNativeField("rightView") 但这不起作用。
    • 糟糕,抱歉,在我喝咖啡之前回答了。已编辑
    • 似乎不起作用。这是我的代码: UITextField entry = new UITextField(); // 这行已经崩溃了... entry.RightViewMode = UITextFieldViewMode.Always; // 如果我注释掉上面的行,这一行返回 NULL。 UIView oRightView = Runtime.GetNSObject (Messaging.intptr_objc_msgSend (_entry.Handle, Selector.GetHandle("rightView"))) as UIView;
    • 你需要在某个时候设置正确的视图,你可以这样做:Messaging.void_objc_msgSend_intptr (_entry.Handle, Selector.GetHandle ("setRightView:"), theRightView.Handle);跨度>
    猜你喜欢
    • 2021-02-27
    • 2014-07-14
    • 2020-02-02
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多