【发布时间】:2018-02-18 07:13:05
【问题描述】:
所以我正在使用 Xamarin 并尝试创建一个图像渲染器,当点击它时将显示 iOS 的 UIDatePicker。我的渲染器非常适合 Android,但我无法让日期选择器在 iOS 上显示。我的代码在渲染器下面,我对其进行了调试,我一直通过 mTextField.BecomeFirstResponder();我“认为”会让日期选择器显示出来。
谁能指出我正确的方向?我只需要那个选择器显示在屏幕上。一旦我可以让它显示出来,我就可以随心所欲地处理它。
private void _DatePickerHasBeenTapped( object sender, EventArgs e )
{
if( mDatePickerDialog != null )
{
mDatePickerDialog.TouchCancel -= _DatePickerDialogOnCancelEvent;
mDatePickerDialog.ValueChanged -= _DatePickerDialogOnValueChanged;
}
var date = mDatePicker.PickerDate == DateTime.MinValue
? DateTime.Today
: mDatePicker.PickerDate;
mTextField = new UITextField();
mDatePickerDialog = new UIDatePicker { Mode = UIDatePickerMode.Date, TimeZone = new NSTimeZone( "UTC" ) };
mDatePickerDialog.ValueChanged += _DatePickerDialogOnValueChanged;
mDatePickerDialog.SetDate( date.ToNSDate(), false );
var width = UIScreen.MainScreen.Bounds.Width;
var toolbar = new UIToolbar( new RectangleF( 0, 0, (float)width, 44 ) ) { BarStyle = UIBarStyle.Default, Translucent = true };
var spacer = new UIBarButtonItem( UIBarButtonSystemItem.FlexibleSpace );
var doneButton = new UIBarButtonItem( UIBarButtonSystemItem.Done, ( o, a ) => mDatePickerDialog.ResignFirstResponder() );
toolbar.SetItems( new[] { spacer, doneButton }, false );
mTextField.InputView = mDatePickerDialog;
mTextField.InputAccessoryView = toolbar;
if( mTextField.CanBecomeFirstResponder )
{
mTextField.BecomeFirstResponder();
}
}
【问题讨论】:
标签: c# xamarin xamarin.ios uidatepicker