void OnKeyPressed(object sender, KeyEventArgs args) { var searchField = sender as NSSearchField; if (searchField == null || searchEntry.Window == null) { return; } var isNSTextView = searchField.Window.FirstResponder is NSTextView; var isTabPressedInsideSearchBar = (args.Key == Key.Tab && isNSTextView); if (isTabPressedInsideSearchBar) { SearchEntryKeyPressed?.Invoke(sender, args); } }
void AttachToolbarEvents(SearchBar bar) { bar.Changed += (o, e) => { SearchEntryChanged?.Invoke(o, e); }; bar.KeyPressed += (o, e) => { SearchEntryKeyPressed?.Invoke(o, e); }; bar.LostFocus += (o, e) => { SearchEntryLostFocus?.Invoke(o, e); }; bar.SelectionActivated += (o, e) => { SearchEntryActivated?.Invoke(o, e); }; bar.LostFocus += (sender, e) => { exitAction?.Invoke(); }; }