using TMPro;
using UnityEngine;
using UnityEngine.UI;
///
/// 适配器:让 CustomKeyboard 可以直接操作 TMP_InputField
/// 实现类似 InputDialog 的接口但实际修改 InputField
///
public class KeyboardInputAdapter : MonoBehaviour
{
private TMP_InputField _inputField;
private object _manager; // CustomKeyboardManager,使用 object 避免循环引用
public Button ConfirmButton; // 虚拟确认按钮
private bool _shouldClearOnFirstInput = false; // 是否在首次输入时清空
private bool _hasInputOccurred = false; // 是否已经发生过输入
public void SetTarget(TMP_InputField inputField, object manager, bool clearOnFirstInput = false)
{
_inputField = inputField;
_manager = manager;
_shouldClearOnFirstInput = clearOnFirstInput;
_hasInputOccurred = false;
// 创建虚拟确认按钮(CustomKeyboard 需要)
var btnGO = new GameObject("VirtualConfirmButton", typeof(Button));
btnGO.transform.SetParent(this.transform, false);
ConfirmButton = btnGO.GetComponent