Ich versuche, den Effekt einer NSComboBox zu erzeugen mit completes
== YES, keine Taste, und numberOfVisibleItems
== 0 (als Beispiel können Sie versuchen, ein Album oder einen Interpreten in das iTunes-Fenster "Get Info" einzugeben).
Um dies zu erreichen, verwende ich ein NSTextField-Steuerelement, das automatisch vervollständigt wird, wenn -controlTextDidChange:
anrufen -[NSTextField complete:]
die die Delegate-Methode auslöst:
- (NSArray *)control:(NSControl *)control
textView:(NSTextView *)textView
completions:(NSArray *)words
forPartialWordRange:(NSRange)charRange
indexOfSelectedItem:(NSInteger *)index;
Das einzige Problem ist der Nebeneffekt, dass ein Dropdown angezeigt wird. Ich würde es gerne unterdrücken, aber ich habe keine Möglichkeit gesehen, dies zu tun. Ich habe die Dokumentation, das Internet und Stack Overflow durchforstet, ohne Erfolg.
Ich würde eine delegierte Methode bevorzugen, aber ich bin offen für eine Unterklassifizierung, wenn das die einzige Möglichkeit ist. Ich bin Targeting Lion, für den Fall, dass es hilft, so Lösungen müssen nicht abwärtskompatibel sein.