在统一编辑器脚本中,当聚焦我的编辑器窗口时,如何使编辑器窗口不聚焦任何文本字段

时间:2018-09-30 14:32:59

标签: c# unity3d

查看我的gif,如果在上一个editorwindow焦点中,我聚焦于一个文本字段,而在下一个焦点中,editorwindow将自动聚焦于该文本字段

enter image description here

我发现统一编辑人员官方“ Hierarchy”没有此错误,当我聚焦他们的搜索栏并失去焦点并重新聚焦时,“ Hierarchy”搜索栏将无法获得焦点

我认为它必须存在,我应该怎么做?

我确定我在editorwindow类中使用了正确的移除焦点代码

private void OnFocus()
{
    RemoveInputFocus();
}

private void OnLostFocus()
{
    RemoveInputFocus();
}

private static void RemoveInputFocus()
{
    // EditorGUI.FocusTextInControl(null);
    GUIUtility.keyboardControl = 0;
}

1 个答案:

答案 0 :(得分:0)

我已修复它,在OnGUI块中运行GUIUtility.keyboardControl = 0,OnGUI块很重要,如果我将GUIUtility.keyboardControl = 0放在OnFocus中,它将无法正常工作,我猜想在OnFocus团结一致后会收到最后一个重点

private void OnGUI()
{
    // on OnGUI start
    if (firstEnterAfterFocus)
    {
        RemoveInputFocus();
        firstEnterAfterFocus = false;
    }
}


private bool firstEnterAfterFocus;

private void OnFocus()
{
    firstEnterAfterFocus = true;
    // RemoveInputFocus();
}

private static void RemoveInputFocus()
{
    // EditorGUI.FocusTextInControl(null);
    GUIUtility.keyboardControl = 0;
}