Dropdown 샘플코드 갱신. Tab align 기능 추가
This commit is contained in:
@@ -449,12 +449,15 @@ var dropdown = new UTKDropdown(""Select Option"");
|
||||
dropdown.SetOptions(new List<string> { ""Option 1"", ""Option 2"", ""Option 3"", ""Option 4"" });
|
||||
dropdown.SelectedIndex = 0;
|
||||
|
||||
// 선택 이벤트
|
||||
dropdown.OnSelectionChanged += (index) =>
|
||||
// 선택 이벤트 (인덱스와 값 모두 전달)
|
||||
dropdown.OnSelectionChanged += (index, value) =>
|
||||
{
|
||||
Debug.Log($""선택된 인덱스: {index}"");
|
||||
Debug.Log($""선택: [{index}] {value}"");
|
||||
};
|
||||
|
||||
// 생성자로 한 번에 설정
|
||||
var sortDropdown = new UTKDropdown(""정렬"", new List<string> { ""이름"", ""날짜"", ""크기"" });
|
||||
|
||||
// 선택된 값 가져오기
|
||||
var selectedIndex = dropdown.SelectedIndex;
|
||||
var selectedValue = dropdown.SelectedValue;
|
||||
@@ -462,22 +465,42 @@ var selectedValue = dropdown.SelectedValue;
|
||||
// 옵션 동적 변경
|
||||
dropdown.SetOptions(new List<string> { ""New 1"", ""New 2"", ""New 3"" });
|
||||
|
||||
// 프로그램으로 선택
|
||||
// 프로그램으로 선택 (인덱스로)
|
||||
dropdown.SelectedIndex = 2;
|
||||
|
||||
// 프로그램으로 선택 (값으로)
|
||||
dropdown.SetSelectedValue(""Option 2"");
|
||||
|
||||
// 이벤트 없이 값 변경 (초기화 시 유용)
|
||||
sortDropdown.SetSelectedValue(""크기"", notify: false);
|
||||
|
||||
// 동적으로 옵션 추가
|
||||
dropdown.AddOption(""Option 5"");
|
||||
|
||||
// Disabled
|
||||
var disabledDropdown = new UTKDropdown(""Disabled"");
|
||||
disabledDropdown.SetOptions(new List<string> { ""Option 1"", ""Option 2"" });
|
||||
disabledDropdown.SelectedIndex = 0;
|
||||
disabledDropdown.IsEnabled = false;",
|
||||
uxmlCode: @"<!-- UTKDropdown은 동적 생성 권장 -->
|
||||
<!-- C# 코드에서 SetOptions로 옵션 설정 -->
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 드롭다운 -->
|
||||
<utk:UTKDropdown name=""dropdown-1"" text=""Select Option"" />
|
||||
<!-- 기본 드롭다운 (쉼표로 구분) -->
|
||||
<utk:UTKDropdown label=""정렬"" choices=""이름,날짜,크기"" />
|
||||
|
||||
<!-- Disabled -->
|
||||
<utk:UTKDropdown name=""dropdown-2"" text=""Disabled"" is-enabled=""false"" />");
|
||||
<!-- 기본값 지정 (index로) -->
|
||||
<utk:UTKDropdown label=""언어"" choices=""한국어,English,日本語"" index=""0"" />
|
||||
|
||||
<!-- 플레이스홀더 사용 -->
|
||||
<utk:UTKDropdown label=""국가"" choices=""한국,미국,일본,중국"" placeholder=""국가를 선택하세요"" />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKDropdown label=""선택"" choices=""옵션1,옵션2,옵션3"" index=""1"" is-enabled=""false"" />
|
||||
|
||||
<!-- C# 코드에서 SetOptions로 동적 설정 권장 -->
|
||||
<utk:UTKDropdown name=""dropdown-1"" label=""Select Option"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
private enum SampleEnum { Option1, Option2, Option3 }
|
||||
@@ -494,34 +517,163 @@ disabledDropdown.IsEnabled = false;",
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// Enum 정의
|
||||
public enum SampleEnum { Option1, Option2, Option3 }
|
||||
public enum Difficulty { Easy, Normal, Hard, Expert }
|
||||
|
||||
// 기본 사용법
|
||||
// 기본 사용법 (생성자로 label과 기본값 지정)
|
||||
var enumField = new UTKEnumDropDown(""Choice"", SampleEnum.Option1);
|
||||
|
||||
// 값 변경 이벤트
|
||||
enumField.OnValueChanged += (newValue) =>
|
||||
{
|
||||
Debug.Log($""선택된 값: {newValue}"");
|
||||
// Enum으로 캐스팅하여 사용
|
||||
if (newValue is SampleEnum sample)
|
||||
{
|
||||
Debug.Log($""SampleEnum: {sample}"");
|
||||
}
|
||||
};
|
||||
|
||||
// 난이도 선택 예시
|
||||
var difficultyDropdown = new UTKEnumDropDown(""난이도"", Difficulty.Normal);
|
||||
difficultyDropdown.OnValueChanged += (value) =>
|
||||
{
|
||||
var difficulty = (Difficulty)value;
|
||||
Debug.Log($""난이도 변경: {difficulty}"");
|
||||
};
|
||||
|
||||
// 현재 선택된 값 가져오기
|
||||
var currentValue = enumField.Value;
|
||||
if (currentValue is SampleEnum sample)
|
||||
{
|
||||
Debug.Log($""현재 값: {sample}"");
|
||||
}
|
||||
|
||||
// 프로그램으로 값 변경
|
||||
enumField.Value = SampleEnum.Option2;
|
||||
|
||||
// 이벤트 없이 값 변경
|
||||
enumField.SetValue(SampleEnum.Option3, notify: false);
|
||||
|
||||
// Disabled
|
||||
enumField.IsEnabled = false;",
|
||||
uxmlCode: @"<!-- UTKEnumDropDown은 동적 생성 권장 -->
|
||||
<!-- C# 코드에서 enum 타입과 초기값 지정 -->
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- UTKEnumDropDown은 동적 생성 권장 -->
|
||||
<!-- C# 코드에서 enum 타입과 초기값으로 Init() 호출 필수 -->
|
||||
|
||||
<!-- 기본 Enum 드롭다운 -->
|
||||
<utk:UTKEnumDropDown name=""enum-dropdown-1"" label=""Choice"" />
|
||||
|
||||
<!-- Disabled -->
|
||||
<utk:UTKEnumDropDown name=""enum-dropdown-2"" label=""Choice"" is-enabled=""false"" />");
|
||||
<utk:UTKEnumDropDown name=""enum-dropdown-2"" label=""Choice"" is-enabled=""false"" />
|
||||
|
||||
</ui:UXML>
|
||||
|
||||
<!-- C#에서 초기화 예시 -->
|
||||
<!--
|
||||
var enumDropdown = root.Q<UTKEnumDropDown>(""enum-dropdown-1"");
|
||||
enumDropdown.Init(SampleEnum.Option1); // 필수!
|
||||
-->");
|
||||
}
|
||||
|
||||
private void InitializeMultiSelectDropdownSample(VisualElement root)
|
||||
{
|
||||
var normalRow = root.Q<VisualElement>("multiselect-normal-row");
|
||||
if (normalRow != null)
|
||||
{
|
||||
var dropdown = new UTKMultiSelectDropdown("Select Categories");
|
||||
dropdown.SetOptions(new List<string> { "Category 1", "Category 2", "Category 3", "Category 4", "Category 5" });
|
||||
dropdown.SetSelectedIndices(new List<int> { 0, 2 });
|
||||
normalRow.Add(dropdown);
|
||||
}
|
||||
|
||||
var disabledRow = root.Q<VisualElement>("multiselect-disabled-row");
|
||||
if (disabledRow != null)
|
||||
{
|
||||
var dropdown = new UTKMultiSelectDropdown("Disabled");
|
||||
dropdown.SetOptions(new List<string> { "Option 1", "Option 2", "Option 3" });
|
||||
dropdown.SetSelectedIndices(new List<int> { 0, 1 });
|
||||
dropdown.IsEnabled = false;
|
||||
disabledRow.Add(dropdown);
|
||||
}
|
||||
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 사용법
|
||||
var dropdown = new UTKMultiSelectDropdown(""Select Categories"");
|
||||
dropdown.SetOptions(new List<string> { ""Category 1"", ""Category 2"", ""Category 3"", ""Category 4"", ""Category 5"" });
|
||||
|
||||
// 선택 이벤트 (인덱스 목록과 값 목록 모두 전달)
|
||||
dropdown.OnSelectionChanged += (indices, values) =>
|
||||
{
|
||||
Debug.Log($""선택된 개수: {values.Count}"");
|
||||
Debug.Log($""선택 항목: {string.Join("", "", values)}"");
|
||||
Debug.Log($""인덱스: [{string.Join("", "", indices)}]"");
|
||||
};
|
||||
|
||||
// 생성자로 한 번에 설정
|
||||
var categoryDropdown = new UTKMultiSelectDropdown(
|
||||
""카테고리 선택"",
|
||||
new List<string> { ""과일"", ""채소"", ""육류"", ""유제품"" }
|
||||
);
|
||||
|
||||
// 기본값 설정 (인덱스로)
|
||||
categoryDropdown.SetSelectedIndices(new List<int> { 0, 2 });
|
||||
|
||||
// 기본값 설정 (값으로)
|
||||
categoryDropdown.SetSelectedValues(new List<string> { ""과일"", ""육류"" });
|
||||
|
||||
// 이벤트 없이 선택 변경 (초기화 시 유용)
|
||||
categoryDropdown.SetSelectedIndices(new List<int> { 1, 3 }, notify: false);
|
||||
|
||||
// 선택된 값 가져오기
|
||||
var selectedIndices = dropdown.SelectedIndices;
|
||||
var selectedValues = dropdown.SelectedValues;
|
||||
|
||||
// 전체 선택
|
||||
dropdown.SelectAll();
|
||||
|
||||
// 전체 해제
|
||||
dropdown.ClearSelection();
|
||||
|
||||
// 옵션 동적 변경
|
||||
dropdown.SetOptions(new List<string> { ""New 1"", ""New 2"", ""New 3"" });
|
||||
|
||||
// Disabled
|
||||
var disabledDropdown = new UTKMultiSelectDropdown(""Disabled"");
|
||||
disabledDropdown.SetOptions(new List<string> { ""Option 1"", ""Option 2"", ""Option 3"" });
|
||||
disabledDropdown.SetSelectedIndices(new List<int> { 0, 1 });
|
||||
disabledDropdown.IsEnabled = false;",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 다중 선택 드롭다운 (쉼표로 구분) -->
|
||||
<utk:UTKMultiSelectDropdown label=""카테고리"" choices=""과일,채소,육류,유제품"" />
|
||||
|
||||
<!-- 기본값 지정 (인덱스로) -->
|
||||
<utk:UTKMultiSelectDropdown label=""태그""
|
||||
choices=""중요,긴급,검토 필요,완료""
|
||||
selected-indices=""0,1"" />
|
||||
|
||||
<!-- 플레이스홀더 사용 -->
|
||||
<utk:UTKMultiSelectDropdown label=""필터""
|
||||
choices=""전체,활성,비활성,대기중""
|
||||
placeholder=""필터를 선택하세요"" />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKMultiSelectDropdown label=""선택""
|
||||
choices=""옵션1,옵션2,옵션3""
|
||||
selected-indices=""0,2""
|
||||
is-enabled=""false"" />
|
||||
|
||||
<!-- C# 코드에서 SetOptions로 동적 설정 권장 -->
|
||||
<utk:UTKMultiSelectDropdown name=""multiselect-1"" label=""Select Options"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Slider Initializers
|
||||
|
||||
private void InitializeSliderSample(VisualElement root)
|
||||
@@ -683,6 +835,4 @@ async UniTask LoadDataAsync()
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user