apache_conf テキスト入力确认ウィンドウサンプル

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache_conf テキスト入力确认ウィンドウサンプル相关的知识,希望对你有一定的参考价值。

using UnityEngine;
using System.Collections;
using UnityEditor;

[CustomEditor(typeof(ConfirmTest))]
public class ConfirmTestEditor : Editor
{
    ConfirmTest _target;

    void OnEnable ()
    {
        _target = (ConfirmTest)target;
        _isDisable = false;
    }

    bool _isDisable = false;
    string _text = "";

    public override void OnInspectorGUI ()
    {
        // Windowを表示しているときに全体を非アクティブにするDisableGroup
        EditorGUI.BeginDisabledGroup (_isDisable);
        GUILayout.Label ("専用Windowから入力するテスト");
        // 直接入力させないために常に非アクティブにしておくDisableGroup
        EditorGUI.BeginDisabledGroup (true);
        _text = EditorGUILayout.TextField (_text);
        EditorGUI.EndDisabledGroup ();

        if (GUILayout.Button ("入力ボタン", GUILayout.Width (100f), GUILayout.Height (30f)))
        {
            // ウィンドウを開いたら全体を非アクティブへ
            _isDisable = true;
            OpenWindow(x=>{
                // キャンセルの場合はnullなのでnullチェック
                if (string.IsNullOrEmpty (x) == false)
                {
                    _text = x ;
                }
                // 非アクティブ解除
                _isDisable = false;
            });
        }
        EditorGUI.EndDisabledGroup ();
    }

    void OpenWindow (System.Action<string> callback)
    {
        // 引数をtrueにして常に最前面へ持ってくる
        var w = EditorWindow.GetWindow <InputConfirmWindow> (true);
        w.Setup (callback);
        w.position = new Rect (150f, 150f, 325f, 150f);
    }
}

// テキスト入力Window
public class InputConfirmWindow :EditorWindow
{
    private System.Action<string> _callback;
    public void Setup(System.Action<string> callback)
    {
        _callback = callback;
    }

    string _input = "";
    bool _isInit = false;
    void OnGUI ()
    {
        GUILayout.Label ("入力してください");
        GUILayout.Space (10f);
        GUI.SetNextControlName ("ForcusField");
        _input = GUILayout.TextField (_input);
        GUILayout.Space (10f);

        // 何かしら入力しないとOKボタンを押せないようにするDisableGroup
        EditorGUI.BeginDisabledGroup (string.IsNullOrEmpty (_input));
        GUILayout.BeginHorizontal ();
        if (GUILayout.Button ("OK", GUILayout.Height (30f)))
        {
            _callback (_input);
            Close ();
        }
        EditorGUI.EndDisabledGroup ();
        if (GUILayout.Button ("CANCEL", GUILayout.Height (30f)))
        {
            _callback (null);
            Close ();
        }
        GUILayout.EndHorizontal ();

        if (_isInit == false)
        {
            // テキストフィールドにフォーカスをあてる
            EditorGUI.FocusTextInControl ("ForcusField");
        }
        _isInit = true;
    }
}

以上是关于apache_conf テキスト入力确认ウィンドウサンプル的主要内容,如果未能解决你的问题,请参考以下文章

csharp 统一のシーンファイルリストウィンドウ。全てのシーン,ビルド登录シーンを切り替え可。

html jQuery的でモーダルウィンドウ

python ウィンドウをマウスでクリックすると図形を描画

python 画面外にふっとんだ玛雅のウィンドウを救出する

php WordPressのテキストウィジェットのauto paragraph机能を无效化

php WordPressのテキストウィジェットのauto paragraph机能を无效化