using System;
using MyFrameworkPure;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
namespace MyFrameworkPure
{
///
/// 输入框面板,包含标题,输入提示文字,确认,取消按钮
///
public class InputBox : MonoBehaviour
{
[SerializeField] private Text titleText;
[SerializeField] private InputField inputField;
[SerializeField] private Button ensureBtn;
[SerializeField] private Button cancelBtn;
public UnityAction onComplete;
public Predicate onVaild;
private static InputBox instance;
// Start is called before the first frame update
void Start()
{
ensureBtn.onClick.AddListener(() =>
{
if (onVaild == null || onVaild(inputField.text))
{
onComplete?.Invoke(inputField.text);
gameObject.SetActive(false);
}
});
cancelBtn.onClick.AddListener(() => gameObject.SetActive(false));
}
public static void Show(string title, string placeholder, UnityAction onComplete, Predicate onvaild = null)
{
if (instance == null)
{
instance = GameObjectTool.FindObjectOfType();
}
instance.transform.SetAsLastSibling();
instance.gameObject.SetActive(true);
instance.titleText.text = title;
instance.inputField.placeholder.GetComponent().text = placeholder;
instance.onComplete = onComplete;
instance.onVaild = onvaild;
}
}
}