ios - 我如何从 DatePicker 和 Timepicker 获取通知(仅用户在 Xamarin 表单 IOS 中按下“完成”按钮)

标签 ios xamarin xamarin.forms xamarin.ios

我想知道如何仅当用户在Xamarin forms IOS中按下完成按钮时才从日期选择器和时间选择器获取通知。目前,当 TimePicker 属性更改并且 DatePicker DateSelected 在选择器选择的索引更改时引发。

帮我解决这个问题。

最佳答案

当用户按下DatePickerTimerPicker的完成按钮时,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

custom-renderer

关于ios - 我如何从 DatePicker 和 Timepicker 获取通知(仅用户在 Xamarin 表单 IOS 中按下“完成”按钮),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58960762/

相关文章:

c# - 如何将数据从 View Controller 发送到 View Controller Xamarin iOS(C#)

android - 为什么修改WebView Layout Parameter 就解决了0 height body 的问题?

ios - Xcode6:运行模拟器的两个实例

c# - List(T).ForEach 未使用 Xamarin 定义

ios - iPhone 应用程序、数据层和数据库服务器

multithreading - Xamarin.Forms 后台线程

c# - Xamarin iOS - 基于配置文件的代码

Xamarin.Forms更改alertDialog中按钮的颜色和边框颜色

同一项目中两个目标的 iOS 今天小部件

ios - 视频全屏在 ios Swift AVPlayer 中不起作用?