【问题标题】:How can I create a text box on iOS/Android and handle the input in MonoGame?如何在 iOS/Android 上创建文本框并处理 MonoGame 中的输入?
【发布时间】:2019-05-25 15:02:28
【问题描述】:
我希望人们可以在我的 MonoGame iOS 和 Android 应用程序中创建一个新帐户。我需要一个输入用户名、密码和恢复电子邮件地址的文本框(如果有人忘记了他的密码)。
如何创建文本框?我应该制作一个白色矩形精灵 (Texture2D) 和一个 spriteFont 来编写文本(例如用户名)吗?
或者有没有更好的方法来创建文本框?
如何确定是否有人用手指点击了空白文本框?我可以使用Rectangle.Intersects(TappRectangle) 还是换一种方式更好?
如何在有人点击文本框后在 iOS/Android 上显示键盘,以便他们在文本框中输入用户名?
如何获取他们在键盘上敲击的字符?
是否可以保存/记住文本(登录数据),以便人们在启动我的应用程序时不需要总是编写它?我希望文本框在他们启动应用程序时已经填写了他们的登录凭据,然后他们只需要点击登录按钮即可登录。
【问题讨论】:
标签:
c#
xamarin.android
xamarin.ios
monogame
【解决方案1】:
您可以使用KeyboardInput.Show(string WindowTitle, string Prompt, string Default, bool HidePassword = false) 方法。
// Load saved data into the following variables:
var defaultUsername = "";
var defaultPassword = "";
var defaultEmail = "";
var username = await KeyboardInput.Show("Name", "What's your username?", defaultUsername);
var password = await KeyboardInput.Show("Password", "What's your Password?", defaultPassword, true);
var email = await KeyboardInput.Show("E-Mail", "What's your Email?", defaultEmail);
// validate and save if the values do not match the defaults above
这将显示三个单独的输入框,但它处理提示和弹出式键盘显示和输入。
就保存数据而言:查看TitleContainer 类。您可以使用标准文件 I/O 来读取和写入数据。