У меня тоже была такая же проблема, и, к сожалению, я не нашел подходящий компонент. Я также был вдохновлен от Google.
Так что мне оказалось проще "смоделировать компонент", используя поле редактирования и сетку, расположенную под ним. Когда пользователь вводит что-то в поле ввода, запрос обновляется, и в таблице отображаются правильные результаты. У меня есть много столбцов в сетке, результаты запроса пытаются сопоставить все поля (поэтому, если я наберу 'po', запрос вернет все записи, где любое поле похоже на 'po%'). Я также добавил задержку в 500 мс после того, как пользователь печатает, чтобы избежать слишком большого количества ненужных запросов (другой подход может заключаться в том, чтобы завершить поток, когда пользователь нажимает новый ключ, если запрос выполняется в потоке).
Таким образом, я получил требуемую функциональность, даже если без выделения текста поиска все равно мои пользователи будут в восторге от этого.
В каждом месте, где я использую этот «компонент», я прикрепляю запрос во время выполнения, чтобы он мог использоваться во многих различных формах.
Меня почему-то также вдохновил пользовательский интерфейс Skype: когда вы отображаете список контактов, вы можете что-то напечатать, и контакты будут отфильтрованы соответствующим образом (Skype использует поле редактирования + сетка / список).