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)); }