在Xamarin.Froms 中为iOS 平台,自定义Picker 控件的显示样式

Yonglun Liu (Shanghai Wicresoft Co,.Ltd.) 43,536 信誉分 Microsoft 供应商
2024-01-30T06:43:00.6333333+00:00

我想修改 iOS 中 picker 的显示样式。在不选择任何内容的情况下,我需要添加一个“close”按钮来关闭 picker(我无法单击它后面的视图,因为它有一个触摸事件),同时我希望新按钮可以放在工具栏的左侧。

注意:此问题总结整理于:Custom Render for Picker - iOS

Xamarin
Xamarin
用于使用 .NET 和 C# 构建 Android 和 iOS 应用的 Microsoft 开源应用平台。
14 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Wenyan Zhang (Shanghai Wicresoft Co,.Ltd.) 32,131 信誉分 Microsoft 供应商
    2024-01-30T06:45:06.24+00:00

    您好,

    您可以在 toolBar上添加一个Close按钮,从而实现不选择任何内容就关闭Picker的功能, 请参考以下代码:

    public class CustomPickerRenderer:PickerRenderer
        {
            protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
            {
                base.OnElementChanged(e);
                if (Control != null)
                {
                    UIToolbar toolbar = (UIToolbar)Control.InputAccessoryView;
                    var closeButton = new UIBarButtonItem(UIBarButtonSystemItem.Close, (s, a) =>
                    {
                        Control.ResignFirstResponder();
                        UpdateCharacterSpacing();
                    });
                    List<UIBarButtonItem> oldItems = toolbar.Items.ToList();
                   // oldItems.Add(closeButton);
                    oldItems.Insert(0, closeButton);//新的close按钮将位于toolbar的左侧
                    UIBarButtonItem[] newItems = oldItems.ToArray();
                    toolbar.SetItems(newItems, false);
                }
            }
        }
    

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。