zoukankan      html  css  js  c++  java
  • 输入控件聚焦问题

    Q:输入控件在聚焦后,如果在其他地方改变其值(例如代码中),聚焦的控件内容不会更新,而且无法取消聚焦。

    A:取消聚焦的时机可以是按钮按下时、ESC键或者鼠标移出面板等。取消聚焦的代码:

    GUI.FocusControl(null);
    Repaint();//有时需要重绘
    

    多个控件,有复杂交互时,可以为控件指定一个聚焦名字:

    GUI.SetNextControlName("mytext:");//指定下一控件用于控制聚焦的名字
    text = EditorGUILayout.TextField("text", text);
    var rect = GUILayoutUtility.GetLastRect();
    var e = Event.current;
    if (e.type == EventType.MouseDown //当鼠标点击时
        && !rect.Contains(e.mousePosition) //鼠标不在控件范围内时
        && GUI.GetNameOfFocusedControl() == "mytext:") { //判断控件处于聚焦状态时
        GUI.FocusControl(null);
    }
    

    另外也可以使用GUIUtility.keboardControl来获取当前键盘聚焦的控件id

  • 相关阅读:
    hdu1089
    hdu1088
    驴妈妈
    途牛悄然上市 登陆SEC途牛前景如何
    途牛旅游网
    百度-----携程
    携程旅行网
    手机游戏
    web
    改造 改革
  • 原文地址:https://www.cnblogs.com/stan-si/p/10573412.html
Copyright © 2011-2022 走看看