Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当焦点丢失时,如何保持InputField键盘打开?_C#_Android_Unity3d - Fatal编程技术网

C# 当焦点丢失时,如何保持InputField键盘打开?

C# 当焦点丢失时,如何保持InputField键盘打开?,c#,android,unity3d,C#,Android,Unity3d,我正在制作一个打字游戏,用户输入从屏幕上掉下来的单词,我在顶部有一些按钮,当用户按下按钮时,这些按钮起到通电(核武器、冻结等)的作用 现在,当用户单击屏幕顶部的一个通电按钮时,键盘将暂时关闭,然后单击按钮将其重新打开,看起来有点问题如何设置,以便用户单击顶部的一个按钮时,键盘始终保持打开状态? 目前,我在按钮上添加了一个监听器,可以重新打开键盘 myButton.onClick.AddListener(ButtonClicked); void按钮单击() { //DoStuff(); Activ

我正在制作一个打字游戏,用户输入从屏幕上掉下来的单词,我在顶部有一些按钮,当用户按下按钮时,这些按钮起到通电(核武器、冻结等)的作用

现在,当用户单击屏幕顶部的一个通电按钮时,键盘将暂时关闭,然后单击
按钮
将其重新打开,看起来有点问题如何设置,以便用户单击顶部的一个按钮时,键盘始终保持打开状态?

目前,我在按钮上添加了一个监听器,可以重新打开键盘

myButton.onClick.AddListener(ButtonClicked);
void按钮单击()
{
//DoStuff();
ActivateInputField();
}
这就是现在的样子。我必须单击一次以摆脱键盘,然后再次单击按钮

我尝试用自定义类重写一些InputField函数,但没有成功

公共类CustomInputField:InputField
{ 
公共覆盖无效OnDeselect(BaseEventData事件数据)
{
Log(“覆盖InputField.Deselect”);
}
public override void DeactivateInputField()
{
Log(“覆盖InputField.DeactivateInputField”);
}
}
第一个方法无法实现我想要的,第二个方法
DeactivateInputField()
为我提供了

错误CS0506:
CustomInputField.DeactivateInputField”:无法重写继承的成员
InputField.DeactivateInputField',因为它未标记为虚拟、抽象或重写


任何帮助都将不胜感激,谢谢

您可以使用
TouchScreenKeyboard.open
功能使键盘随着时间的推移保持打开状态(这里是Unity手册的链接:)。然后,我会尽量不使用更新,因为应该有另一种方法在您的脚本中这样做

否则,您的错误可能是因为您试图重写一个函数,该函数与错误所述的“非虚拟抽象”或“重写”类似,因此不允许您这样做。这是一个统一类,所以你也不能改变它

您可以尝试的另一件事是最新的更新,这可能并不完美,但它可能有助于您的案例,例如:

LateUpdate()
{
if(!TouchScreenKeyboard.visible)
          TouchScreenKeyboard.Open()/inputField.ActivateInputField();
};

输入字段打开系统键盘,您对它的控制受到限制。如果我是你,我会在我的应用程序中创建UI键盘,它可以以任何方式进行定制,并保证在不同的设备/系统上获得相同的结果

我用一段视频和一些进一步的澄清更新了这个问题。我还尝试使用
TouchScreenKeyboard.Open()
,而不是使用InputField,但问题仍然存在。好的,那么我也不确定这个问题。我只是用我的上一个想法更新了一下我的答案。我和其他很多人一样,也有同样的问题——我希望他们能很快找到解决办法。如果你碰巧找到了,请让社区知道。我希望用户的本机键盘出现,这样他们就可以在日常生活中使用的键盘上练习打字。有没有办法让它在不改变键盘的情况下工作呢?我明白了。那么试试光线投射,也许你可以投射光线并立即触发动作,但我还没有测试过。