使用MonoTouch以编程方式将UITextField添加到UIView

时间:2011-12-29 21:02:43

标签: c# ios xamarin.ios

我正在学习使用MonoTouch。我有一个带两个按钮的屏幕。当用户单击按钮时,将以编程方式创建的视图将显示并隐藏另一个视图。我有这个成功的工作。在我的一个观点中,我想显示一个文本框。虽然我相信我已经在我的视图中正确创建/添加了文本框,但它并没有出现。我的初始化代码如下所示:

RectangleF rectangle1 = new RectangleF(0, 100, 200, 200);
this.view1 = new UIView(rectangle1);
this.View.Add(view1);

RectangleF rectangle2 = new RectangleF(0, 0, UIScreen.MainScreen.Bounds.Width, 300);
this.view2 = new UIView(rectangle2);
this.view2.Hidden = true;
this.view2.BackgroundColor = UIColor.Green;

UITextField textField = new UITextField();
textField.Bounds = new RectangleF(20, 13, 200, 31);
view2.AddSubView(textField);

this.View.Add(view2);

我做错了什么?为什么textField不出现?

谢谢!

4 个答案:

答案 0 :(得分:1)

替换

textField.Bounds = new RectangleF(20,13,200,31);

textField.Frame = new RectangleF(20,13,200,31);

答案 1 :(得分:1)

您的textField是 View2 子视图。由于您要设置 view2.Hidden = true ,因此它还隐藏了View2的所有子视图,其中包含文本字段。

您需要注意的另一件事是" on-top"。尝试使用UIView的SendSubviewToBack(UIView view)BringSubviewToFront(UIView view)方法。

答案 2 :(得分:0)

您是否尝试删除和/或更改添加视图的顺序 我相信你所需要的只是

this.view2.AddSubView(textField);
or     
this.View.AddSubview(view2); 

答案 3 :(得分:0)

这可能是因为您将view2标记为隐藏。因此,整个视图甚至都不可见。如果你删除this.view2.Hidden = true,你应该看到你的文本字段。