xamarin.ios - Xamarin 表单选择器 - 自定义 UIPickerView

标签 xamarin.ios xamarin xamarin.forms

使用 Xamarin Forms,如何将默认选择器 View 更改为在 PopoverController 中显示?下面的代码抛出“无法从没有窗口的 View 中呈现弹出窗口。”在 iOS 上。

public class BindablePickerRenderer : PickerRenderer {
        private UIPickerView picker;

        protected override void OnElementChanged(ElementChangedEventArgs<Picker> e) {
            base.OnElementChanged(e);

            this.picker = new UIPickerView() {
                Source = (UIPickerViewModel) new PickerSource(e.NewElement)
            };

            var popoverContent = new UIViewController();
            popoverContent.View = picker;


            var popoverController = new UIPopoverController(popoverContent);
            popoverController.PopoverContentSize = new SizeF(320, 180);
            popoverController.PresentFromRect(picker.Frame, this.Control.InputView, UIPopoverArrowDirection.Up, true);
        }
}

最佳答案

this.Control.InputView您呈现的 View popOverController ?如果是这样,似乎在OnElementChanged()的时候执行,您的 this.Control.InputView无论出于何种原因,都不是窗口层次结构的成员。

你可能想把你的 popOver 呈现 Action 放在一个被覆盖的 MovedToWindow() 中。或 ViewDidAppear() .我不知道你是什么类型的this.Control.InputView是,但您需要覆盖该类型中的其中一种方法。

关于xamarin.ios - Xamarin 表单选择器 - 自定义 UIPickerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24518887/

相关文章:

xamarin.forms - 如何在 Plugin.Fingerprint 对话框中隐藏 USE FALLBACK

IOS 绘制一个简单的图像结果使用 Xamarin C# 变得模糊

Xamarin iOS HttpClient 超时不起作用

c# - Xamarin Android "namespace SqlConnection does not exist"即使在放置指令之后。 2.如何在本地将安卓应用连接到MSSQL数据库?

c# - Xfinium : How to generate PDF with landscape orientation

azure - 如何使用 azure 移动服务清除本地数据库?

ios - IPA 文件在 Ad-Hoc 安装时不起作用

ios - Xamarin IOS UILabel 点击 UIScrollView 内的手势不起作用

xaml - 寻找正确的方法来实现多个属性依赖关系以在 Xamarin View 中进行绑定(bind)

xamarin.forms - 在 Xamarin 表单中调整事件指示器的大小