从UITextField单击事件MonoTouch中选择UIDatePicker中的日期

时间:2012-08-08 05:34:19

标签: objective-c ios mono xamarin.ios

首先,我有一个TextField。当用户点击它时,将出现DatePicker(在同一文本字段的视图中)。用户选择日期后,DatePicker应该消失,textfield应该显示所选日期。
我在ViewDidLoad中试过这段代码:

    txtTime.TouchDown += (sender, e) => {
    UIDatePicker picker = new UIDatePicker (new RectangleF (0, 20, this.View.Bounds.Width, 10));  
    picker.Date = DateTime.Now;
    picker.Mode = UIDatePickerMode.Time;
    this.Add(picker);
    txtTime.ResignFirstResponder();             
};

但我有一些问题:

  1. 无法禁用键盘(ResignFirstResponder()无法正常工作)
  2. 我不知道如何处理DatePicker的选择日期以设置Textbox
  3. DatePicker没有'关闭'或者'完成'按钮,所以无法返回文本视图(我可以使用不带动作表的Datepicker吗?)。
  4. 我该如何解决?

2 个答案:

答案 0 :(得分:1)

在书籍"Developing CSharp Apps for iPhone and iPad using MonoTouch - 2011",第7章“标准控制”中,您可以看到如何实施拣选日期的示例。

基本理念是:

  • 将DatePicker放在UIActionSheet上(创建自定义类,实际控制DatePicker和UIActionSheet);
  • 添加标签“选择日期,然后按OK”,并在UIActionSheet视图的顶部按“OK”/“取消”;
  • 在textField.EditingDidBegin事件上显示UIActionSheet。

截图:

How it looks like

对不起俄罗斯语区域设置。

答案 1 :(得分:0)

this.txtTime.shouldreturn += (txtTime) => {
txtTime.resignfirstresponder ();
return true;
}