UTKPropertyItem 개선

This commit is contained in:
logonkhi
2026-02-04 20:31:52 +09:00
parent 8181eae4c6
commit c9af0d2d6f
202 changed files with 8337 additions and 3878 deletions

View File

@@ -183,7 +183,7 @@ namespace UVC.UIToolkit
#region UI (UI Component References)
/// <summary>검색어 입력 필드</summary>
private TextField? _searchField;
private UTKInputField? _searchField;
/// <summary>Unity UI Toolkit의 TreeView 컴포넌트</summary>
private TreeView? _treeView;
@@ -324,16 +324,10 @@ namespace UVC.UIToolkit
}
// 3. 자식 요소 참조 획득 (UXML의 name 속성으로 찾음)
_searchField = this.Q<TextField>("search-field");
_searchField = this.Q<UTKInputField>("search-field");
_treeView = this.Q<TreeView>("main-tree-view");
_clearButton = this.Q<UTKButton>("clear-btn");
// 4. Clear 버튼 아이콘 설정
if (_clearButton != null)
{
_clearButton.SetMaterialIcon(UTKMaterialIcons.Close, 12);
}
// 5. 이벤트 연결 및 로직 초기화
InitializeLogic();
}
@@ -348,8 +342,7 @@ namespace UVC.UIToolkit
// 검색창 이벤트: Enter 키를 눌렀을 때 또는 포커스를 잃었을 때 필터링 실행
if (_searchField != null)
{
_searchField.RegisterCallback<KeyDownEvent>(OnSearchFieldKeyDown);
_searchField.RegisterCallback<FocusOutEvent>(OnSearchFieldFocusOut);
_searchField.OnSubmit += OnSearch;
}
// TreeView 설정
@@ -362,7 +355,7 @@ namespace UVC.UIToolkit
_treeView.bindItem = BindTreeItem;
_treeView.selectionChanged += OnTreeViewSelectionChanged;
_treeView.itemsChosen += OnTreeViewItemsChosen;
_treeView.RegisterCallback<KeyDownEvent>(OnTreeViewKeyDown);
_treeView.RegisterCallback<KeyDownEvent>(OnTreeViewKeyDown, TrickleDown.TrickleDown);
// 펼침/접힘 이벤트 처리
_treeView.itemExpandedChanged += OnTreeViewItemExpandedChanged;
@@ -1470,28 +1463,7 @@ namespace UVC.UIToolkit
#endregion
#region (Search Functionality)
/// <summary>
/// 검색 필드에서 Enter 키를 눌렀을 때 검색을 실행합니다.
/// </summary>
/// <param name="evt">키 입력 이벤트</param>
private void OnSearchFieldKeyDown(KeyDownEvent evt)
{
if (evt.keyCode == KeyCode.Return || evt.keyCode == KeyCode.KeypadEnter)
{
OnSearch(_searchField?.value ?? string.Empty);
evt.StopPropagation();
}
}
/// <summary>
/// 검색 필드가 포커스를 잃었을 때 검색을 실행합니다.
/// </summary>
/// <param name="evt">포커스 아웃 이벤트</param>
private void OnSearchFieldFocusOut(FocusOutEvent evt)
{
OnSearch(_searchField?.value ?? string.Empty);
}
/// <summary>
/// Clear 버튼 클릭 이벤트를 처리합니다.
/// </summary>
@@ -1731,8 +1703,7 @@ namespace UVC.UIToolkit
// 검색 필드 이벤트 해제
if (_searchField != null)
{
_searchField.UnregisterCallback<KeyDownEvent>(OnSearchFieldKeyDown);
_searchField.UnregisterCallback<FocusOutEvent>(OnSearchFieldFocusOut);
_searchField.OnSubmit -= OnSearch;
}
// TreeView 이벤트 핸들러 해제
@@ -1741,7 +1712,7 @@ namespace UVC.UIToolkit
_treeView.selectionChanged -= OnTreeViewSelectionChanged;
_treeView.itemsChosen -= OnTreeViewItemsChosen;
_treeView.itemExpandedChanged -= OnTreeViewItemExpandedChanged;
_treeView.UnregisterCallback<KeyDownEvent>(OnTreeViewKeyDown);
_treeView.UnregisterCallback<KeyDownEvent>(OnTreeViewKeyDown, TrickleDown.TrickleDown);
_treeView.bindItem = null;
_treeView.makeItem = null;
}