Xamarin.ios Monotouch:UITextField.LeftView工作,RightView不工作

Xamarin.ios Monotouch:UITextField.LeftView工作,RightView不工作,xamarin.ios,Xamarin.ios,我在这里使用的是最新版本的机器翻译。UITextField中没有RightView属性。看起来好像是忘了绑。我可以手动绑定它吗 已解决-读取到结尾 编辑:多亏了杰夫,我离得更近了。使用LeftView(!)我让这段代码正常工作: var _entry = new UITextField (); UIButton oLeftButton = UIButton.FromType(UIButtonType.DetailDisclosure); _entry.LeftView = oLeftButton

我在这里使用的是最新版本的机器翻译。
UITextField
中没有
RightView
属性。看起来好像是忘了绑。我可以手动绑定它吗

已解决-读取到结尾

编辑:多亏了杰夫,我离得更近了。使用
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;
和另一个编辑: MT3.x中有一个bug,将在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);

是的,这是错过了,它将在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”))作为UIView;您需要在某个时候设置正确的视图,您可以使用:Messaging.void\u objc\u msgSend\u intptr(_entry.Handle,Selector.GetHandle(“setRightView:”),theRightView.Handle);有关objc示例,请参见。