我想知道如何仅当用户在Xamarin forms IOS中按下完成按钮时才从日期选择器和时间选择器获取通知。目前,当 TimePicker 属性更改并且 DatePicker DateSelected 在选择器选择的索引更改时引发。
帮我解决这个问题。
最佳答案
当用户按下DatePicker
和TimerPicker
的完成按钮时,unfocused event将被解雇。
例如:
<StackLayout>
<!-- Place new controls here -->
<app71:myPicker Unfocused="DatePicker_Unfocused"/>
<TimePicker Unfocused="TimePicker_Unfocused" />
</StackLayout>
在 .cs 中:
private void DatePicker_Unfocused(object sender, FocusEventArgs e)
{
Console.WriteLine("DatePicker_Unfocused");
}
private void TimePicker_Unfocused(object sender, FocusEventArgs e)
{
Console.WriteLine("TimePicker_Unfocused");
}
您还可以使用自定义渲染器处理 native Xamarin.iOS 项目中的单击事件,以下是 DatePicker 的示例:
[assembly: ExportRenderer(typeof(myPicker), typeof(MyPickerRenderer))]
namespace App71.iOS
{
public class MyPickerRenderer : DatePickerRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
{
base.OnElementChanged(e);
if (e.OldElement != null)
{
var toolbar = (UIToolbar)Control.InputAccessoryView;
var doneBtn = toolbar.Items[1];
doneBtn.Clicked -= DoneBtn_Clicked;
}
if (e.NewElement != null)
{
var toolbar = (UIToolbar)Control.InputAccessoryView;
var doneBtn = toolbar.Items[1];
doneBtn.Clicked += DoneBtn_Clicked;
}
}
void DoneBtn_Clicked(object sender, EventArgs e)
{
Console.WriteLine("DoneBtn_Clicked");
}
}
}
引用:
how-can-we-handle-the-done-button-click-event-for-a-xamarin-forms-picker
关于ios - 我如何从 DatePicker 和 Timepicker 获取通知(仅用户在 Xamarin 表单 IOS 中按下“完成”按钮),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58960762/