2012-10-23 11 views
8

Próbuję emulować tokenizowaną funkcję wyszukiwania Mail.app i Finder.app na 10.7+ gdzie jest coś, co wygląda na NSSearchField z ikoną lupy wyszukiwania po lewej stronie i przyciskiem anulowania (x) po prawej stronie , ale zawiera także żetony wewnątrz pola wyszukiwania.Czy NSSearchField korzysta z NSTokenFieldCell?

NSSearchField with tokens

Czy istnieje jakiś sposób, aby NSSearchField użyć NSTokenFieldCell zamiast NSSearchFieldCell? Próbowałem wywoływać -setCell: na instancji NSSearchField, która działa i wydaje się wymieniać komórkę, o czym świadczy wywołanie po [searchField cell] w debuggerze, ale rysunek pola wyszukiwania ulega przerwaniu i nie jest rysowane żadne pole tekstowe.

Czy podchodzę do tego we właściwy sposób, czy jest lepszy sposób na zrobienie tego? Dzięki!

Aktualizacja 25.10.2016: Korzystanie z Accessibility Inspector stwierdziliśmy, że Finder i Poczta wykorzystywać mieszankę prywatnych podklasy:

  • SGTSearchField : NSSearchField
    • SGTSearchFieldCell : NSSearchFieldCell
    • SGTTokenFieldCell : NSTokenFieldCell

Są one częścią prywatnego szkieletu o nazwie Suggestions.framework. Mam nadzieję, że Apple upubliczni te klasy w przyszłości. Jeśli chcesz, aby ta funkcja była dostępna publicznie, upewnij się, że jest to file a radar.

+0

Przyda mi się to samo pytanie przy próbie wdrożenia tokenizowanego paska wyszukiwania. Ponieważ wcześniej korzystałem z NSSearchField, szukam również metody łączenia NSSearchField i NSTokenField. Czy masz jakieś rozwiązanie? –

Odpowiedz

0

Najlepsza odpowiedź, którą mam dla was dwóch, to po prostu pójść z NSTokenField. Możesz go zmodyfikować, aby wyświetlić małą ikonę wyszukiwania. Ale jeśli to nie jest make lub break, możesz uzyskać wiele tokenizowanych funkcji z NSTokenField.

Powiązane problemy