32 lines
875 B
C#
32 lines
875 B
C#
using TMPro;
|
|
|
|
namespace AibisDream
|
|
{
|
|
public class DropdownItem : AbsFormItem
|
|
{
|
|
public override FieldType FieldType => FieldType.Dropdown;
|
|
|
|
private TMP_Dropdown _dropdown;
|
|
|
|
protected override void InitField()
|
|
{
|
|
// 获取索引
|
|
_dropdown = GetComponentInChildren<TMP_Dropdown>(true);
|
|
// 注册事件
|
|
_dropdown.onValueChanged.AddListener(OnSelectChanged);
|
|
}
|
|
|
|
public override void SetValue(string value)
|
|
{
|
|
var target = _dropdown.options.FindIndex(item => item.text == value);
|
|
_dropdown.value = target;
|
|
}
|
|
|
|
private void OnSelectChanged(int value)
|
|
{
|
|
// 序号转字符串
|
|
var strValue = _dropdown.options[value].text;
|
|
OnValueChanged?.Invoke(prop, strValue);
|
|
}
|
|
}
|
|
} |