def METHOD_NAME(self, instance, value):
    def unhighlight(cells):
        for cell in cells:
            cell.outline_color = [0]*3
            cell.outline_width = 0
            self._matched.remove(cell)
    if not value:
        if self._matched:
            unhighlight(self._matched.copy())
        return
    if not value.isupper():
        self.text = value.upper()
        return
    text = self.text
    matches = self._searcher.search(text)
    self.suggest(matches.keys())
    if matches:
        # unhighlight old matches
        unmatched = set(self._matched) - set(matches.keys())
        unhighlight(unmatched)
        for key, widget in matches.items():
            cell = widget.get_cell('symbol')
            # cell.background_color = [0.4]*3 + [1]
            cell.outline_width = 2
            cell.outline_color = [0.6] * 3
            self._matched.append(cell)
        key, widget = list(matches.items())[0]
        # ensure first match widget is displayed
        self._pager.scroll_to(widget)