public void Setup(List <string> _options, Action <string> _finishInput) { options = _options; onFinishInput = _finishInput; searchField = new SearchField(); treeView = new AutoCompleteTreeView(this, new TreeViewState()); treeView.searchString = ""; treeView.SetFocus(); }
void OnGUI() { if (_shouldClose || treeView == null) // When code recompiles treeview will become null { Close(); return; } treeView.SetFocus(); var evt = Event.current; if (evt.type == EventType.KeyDown) { if (evt.keyCode == KeyCode.Backspace) { evt.Use(); if (treeView.searchString.Length > 0) { treeView.searchString = treeView.searchString.Substring(0, treeView.searchString.Length - 1); } } char ch = evt.character; if (!Char.IsControl(ch)) { evt.Use(); treeView.searchString += ch; var rows = treeView.GetRows(); if (rows.Count > 0) { treeView.SetSelection(new List <int> { rows[0].id }); } } } searchField.OnGUI(treeView.searchString); treeView.OnGUI(GUILayoutUtility.GetRect(0, 10000, 0, 10000)); }
void OnGUI() { treeView.SetFocus(); var evt = Event.current; if (evt.type == EventType.KeyDown) { if (evt.keyCode == KeyCode.Backspace) { evt.Use(); if (treeView.searchString.Length > 0) { treeView.searchString = treeView.searchString.Substring(0, treeView.searchString.Length - 1); } } char ch = evt.character; if (Char.IsLetterOrDigit(ch) || ch == '_') { evt.Use(); treeView.searchString += ch; var rows = treeView.GetRows(); if (rows.Count > 0) { treeView.SetSelection(new List <int> { rows[0].id }); } } } searchField.OnGUI(treeView.searchString); treeView.OnGUI(GUILayoutUtility.GetRect(0, 10000, 0, 10000)); }