зеркало из https://github.com/DeGsoft/maui-linux.git
[iOS] Change keyboard type while keyboard is visible (#443)
* Change keyboard while changing text * add sample code
This commit is contained in:
Родитель
32dab1d3c7
Коммит
ffab6dd82e
|
@ -0,0 +1,78 @@
|
||||||
|
using System;
|
||||||
|
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, 31141, "Change Entry keyboard type while typing", PlatformAffected.iOS)]
|
||||||
|
public class Bugzilla31141 : TestContentPage // or TestMasterDetailPage, etc ...
|
||||||
|
{
|
||||||
|
protected override void Init()
|
||||||
|
{
|
||||||
|
var stackLayout = new StackLayout
|
||||||
|
{
|
||||||
|
Orientation = StackOrientation.Vertical,
|
||||||
|
Spacing = 10,
|
||||||
|
VerticalOptions = LayoutOptions.Start,
|
||||||
|
HorizontalOptions = LayoutOptions.Center
|
||||||
|
};
|
||||||
|
|
||||||
|
var label = new Label
|
||||||
|
{
|
||||||
|
Text = "Focus Entry or Editor and type characters. For every 3 characters, the keyboard type will change while keyboard is focused up to 12 characters."
|
||||||
|
};
|
||||||
|
stackLayout.Children.Add(label);
|
||||||
|
|
||||||
|
var entry = new Entry
|
||||||
|
{
|
||||||
|
WidthRequest = 250,
|
||||||
|
HeightRequest = 50,
|
||||||
|
BackgroundColor = Color.DarkGoldenrod
|
||||||
|
};
|
||||||
|
entry.TextChanged += InputViewOnTextChanged;
|
||||||
|
stackLayout.Children.Add(entry);
|
||||||
|
|
||||||
|
var editor = new Editor
|
||||||
|
{
|
||||||
|
WidthRequest = 250,
|
||||||
|
HeightRequest = 50,
|
||||||
|
BackgroundColor = Color.AntiqueWhite
|
||||||
|
};
|
||||||
|
editor.TextChanged += InputViewOnTextChanged;
|
||||||
|
stackLayout.Children.Add(editor);
|
||||||
|
|
||||||
|
Content = stackLayout;
|
||||||
|
}
|
||||||
|
|
||||||
|
void InputViewOnTextChanged(object sender, TextChangedEventArgs textChangedEventArgs)
|
||||||
|
{
|
||||||
|
if (textChangedEventArgs.NewTextValue.Length >= 15)
|
||||||
|
return;
|
||||||
|
|
||||||
|
switch (textChangedEventArgs.NewTextValue.Length % 15)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
(sender as InputView).Keyboard = Keyboard.Default;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
(sender as InputView).Keyboard = Keyboard.Numeric;
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
(sender as InputView).Keyboard = Keyboard.Email;
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
(sender as InputView).Keyboard = Keyboard.Telephone;
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
(sender as InputView).Keyboard = Keyboard.Url;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -43,6 +43,7 @@
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla29158.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla29158.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla29363.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla29363.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla29229.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla29229.cs" />
|
||||||
|
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla31141.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla31145.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla31145.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla31333.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla31333.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla31366.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Bugzilla31366.cs" />
|
||||||
|
|
|
@ -118,6 +118,7 @@ namespace Xamarin.Forms.Platform.iOS
|
||||||
void UpdateKeyboard()
|
void UpdateKeyboard()
|
||||||
{
|
{
|
||||||
Control.ApplyKeyboard(Element.Keyboard);
|
Control.ApplyKeyboard(Element.Keyboard);
|
||||||
|
Control.ReloadInputViews();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateText()
|
void UpdateText()
|
||||||
|
|
|
@ -155,6 +155,7 @@ namespace Xamarin.Forms.Platform.iOS
|
||||||
void UpdateKeyboard()
|
void UpdateKeyboard()
|
||||||
{
|
{
|
||||||
Control.ApplyKeyboard(Element.Keyboard);
|
Control.ApplyKeyboard(Element.Keyboard);
|
||||||
|
Control.ReloadInputViews();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdatePassword()
|
void UpdatePassword()
|
||||||
|
|
Загрузка…
Ссылка в новой задаче