зеркало из https://github.com/DeGsoft/maui-linux.git
78 строки
1.9 KiB
C#
78 строки
1.9 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
} |