diff options
3 files changed, 36 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39407.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39407.cs new file mode 100644 index 00000000..9ef89211 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla39407.cs @@ -0,0 +1,30 @@ +using Xamarin.Forms.CustomAttributes; +using Xamarin.Forms.Internals; + +#if UITEST +using Xamarin.UITest; +using NUnit.Framework; +#endif + +namespace Xamarin.Forms.Controls.Issues +{ + [Preserve(AllMembers = true)] + [Issue(IssueTracker.Bugzilla, 39407, "Picker doesn't reset to source selected index when closed while spinning, via touch outside or Done button.", PlatformAffected.iOS)] + public class Bugzilla39407 : TestContentPage + { + protected override void Init() + { + var picker = new Picker + { + ItemsSource = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" } + }; + Content = new StackLayout + { + Children = + { + picker + } + }; + } + } +}
\ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems index 05f45c74..8f175b96 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems @@ -584,6 +584,7 @@ <Compile Include="$(MSBuildThisFileDirectory)Bugzilla38731.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla56710.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Bugzilla52700.cs" /> + <Compile Include="$(MSBuildThisFileDirectory)Bugzilla39407.cs" /> </ItemGroup> <ItemGroup> <EmbeddedResource Include="$(MSBuildThisFileDirectory)Bugzilla22229.xaml"> diff --git a/Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs b/Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs index 50ad64a8..8adbb5b7 100644 --- a/Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs +++ b/Xamarin.Forms.Platform.iOS/Renderers/PickerRenderer.cs @@ -86,6 +86,11 @@ namespace Xamarin.Forms.Platform.iOS void OnEnded(object sender, EventArgs eventArgs) { + var s = (PickerSource)_picker.Model; + if (s.SelectedIndex != _picker.SelectedRowInComponent(0)) + { + _picker.Select(s.SelectedIndex, 0, false); + } ElementController.SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, false); } |