簡體   English   中英

我如何才能從 DatePicker 和 Timepicker 獲得通知,只有用戶按下 Xamarin forms IOS 中的完成按鈕

[英]How can i get notification from DatePicker and Timepicker only user presses Done button in Xamarin forms IOS

我想知道只有當用戶按下Xamarin forms IOS中的完成按鈕時,如何從 Datepicker 和 timepicker 獲取通知。 當前,當 TimePicker 屬性更改並且 DatePicker DateSelected 在選擇器選擇的索引發生更改時引發。

幫我解決這個問題。

當用戶按下DatePickerTimerPicker的完成按鈕時,將觸發未聚焦事件

例如:

<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");
}

您還可以使用自定義渲染器處理原生 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");
        }
    }
}

參考:

我們如何處理完成的按鈕單擊事件為 xamarin 表單選擇器

自定義渲染器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM