Ho cercato ore e ancora non ho trovato una risposta a questo. Come si può ottenere un NSSearchField
per visualizzare un menu con i risultati. Posso usare il menu delle ricerche recenti per visualizzare i risultati, ma come faccio a far visualizzare il menu a livello di programmazione? Grazie per qualsiasi aiuto.Menu risultati NSSearchField
5
A
risposta
5
Credo che Apple lo faccia con alcuni metodi privati. Forse utilizza uno NSWindow
anziché uno NSMenu
. Un modo per farlo è implementarlo nel delegato NSSearchField
presumendo di avere uno IBOutlet
che punta allo NSSearchField
.
- (void)controlTextDidEndEditing: (NSNotification *)aNotification
{
NSString *searchString = [searchField stringValue];
NSMenu *menu = [[NSMenu alloc] initWithTitle: @"results"];
[menu addItemWithTitle: searchString action: @selector(someAction:) keyEquivalent: @""];
[menu addItemWithTitle: @"someString" action: @selector(someOtherAction:) keyEquivalent: @""];
NSEvent *event = [NSEvent otherEventWithType: NSApplicationDefined
location: [searchField frame].origin
modifierFlags: 0
timestamp: 0
windowNumber: [[searchField window] windowNumber]
context: [[searchField window] graphicsContext]
subtype: NSApplicationDefined
data1: 0
data2: 0];
[NSMenu popUpContextMenu: [menu autorelease] withEvent: event forView: searchField];
}
Si noti che la visualizzazione di un menu impedisce un'ulteriore digitazione nel NSSearchField
. Ecco perché ho usato controlTextDidEndEditing:
e non controlTextDidChange:
. Dovresti anche controllare lo NSEvent's Class Reference per una maggiore personalizzazione dell'evento.
1
Apple ha il codice some sample simile a quello che ti serve. Il codice di esempio utilizza NSTextField (che è una classe padre di NSSearchField). Spero che questo risolva il tuo problema.
Problemi correlati
- 1. Fai NSSearchField utilizzare NSTokenFieldCell?
- 2. Visualizzazione dell'indicatore di stato all'interno di NSSearchField
- 3. Chiusura Menu Contesto con Menu Menu Templati
- 4. Menu attività Android Menu Problema
- 5. ActionBarSherlock menu di scelta rapida colore del menu del menu
- 6. I risultati di typeahead di Angular-UI non vengono visualizzati nel menu a discesa
- 7. Come impedire a NSSearchField di sovrascrivere le stringhe immesse utilizzando la prima voce dell'elenco di completamento automatico?
- 8. Menu a tendina personalizzati/menu a discesa
- 9. Android - Seleziona dal menu l'opzione di menu
- 10. Aggiungi/rimuovi menu menu menuItem dinamicamente
- 11. Menu orizzontale
- 12. VS2012 Rendere i risultati dei test vengono visualizzati nella finestra dei risultati del test
- 13. Mostra casella di controllo Menu Menu o Menu contestuale di un pulsante
- 14. TinyMCE 4 add menu a discesa per barra dei menu
- 15. Menu a discesa Bootstrap nel menu a discesa
- 16. Android MapView con menu di oscuramento Menu di oscuramento
- 17. Come pulsante del menu stile e voci di menu
- 18. Impossibile creare il menu "Condividi" nel menu popup su Android
- 19. Voci di menu non visualizzate nella barra dei menu
- 20. espresso lungo clic sulla voce di menu e menu popup
- 21. Come disabilitare i menu Mnemonici in un oggetto Menu WPF?
- 22. Creazione menu popup per iPhone simile al menu app Mail
- 23. Menu "Configura distribuzione Web" mancante dal menu IIS 8
- 24. QTab menu di scelta rapida del menu contestuale
- 25. menu di scelta rapida jquery disattiva voci di menu
- 26. angolare UI bootstrap - spettacolo a discesa typeahead-no-risultati
- 27. Come risultati di caricamento a discesa Select2 tramite AJAX
- 28. Come testare il menu
- 29. menu dinamici in NavigationView
- 30. Come creare menu popup
Grazie, funziona perfettamente. L'unico cambiamento è stato che ho modificato il parametro posizione nell'evento per spostare il menu di circa 5 in modo che non si sovrapponga al campo di ricerca. Grazie! – edc1591
Non l'ho ancora testato, ma forse potresti cambiare l'intera cosa NSEvent in '[NSEvent currentEvent]'. Forse poi ottiene la posizione predefinita ecc. – Jef