2012-10-23 10 views
8

Sto tentando di emulare la funzione di ricerca con token di Mail.app e Finder.app su 10.7+ dove c'è quello che sembra essere un NSSearchField con un'icona lente di ingrandimento di ricerca a sinistra e pulsante Annulla (x) a destra , ma include anche token all'interno del campo di ricerca.Fai NSSearchField utilizzare NSTokenFieldCell?

NSSearchField with tokens

C'è un modo per fare NSSearchField utilizzare un NSTokenFieldCell invece di un NSSearchFieldCell? Ho provato a chiamare -setCell: sull'istanza NSSearchField, che funziona e sembra scambiare la cella come evidenziato chiamando po [searchField cell] nel debugger, ma il disegno del campo di ricerca si interrompe e non viene disegnato alcun campo di testo.

Mi sto avvicinando a questo nel modo giusto o c'è un modo migliore per farlo? Grazie!

Aggiornamento 2016/10/25: Usando l'ispettore Accessibilità ho scoperto che Finder and Mail usare una miscela sottoclassi privati:

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

Questi fanno parte di un framework privato chiamato Suggestions.framework. Speriamo che Apple renderà pubbliche queste classi in futuro. Assicurati di file a radar se desideri visualizzare anche questa funzionalità.

+0

Sono giunto alla stessa domanda quando si tenta di implementare la barra di ricerca con token. Poiché stavo già usando NSSearchField, sto anche cercando il metodo per combinare NSSearchField e NSTokenField. Hai qualche soluzione? –

risposta

0

La migliore risposta che ho per voi due è semplicemente andare con un NSTokenField. Potresti essere in grado di modificarlo per visualizzare la piccola icona di ricerca. Ma se questo non è fare o interrompere, è possibile ottenere un sacco di funzionalità tokenized da NSTokenField.