ABPeoplePicker SearchField feuert Action nur bei Enter / Tab

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • ABPeoplePicker SearchField feuert Action nur bei Enter / Tab

    Hallo zusammen,

    ich habe eine kleine Herausforderung, an der ich leider hängen bleibe. Ich habe ein App (OS X v10.7), bei dem ich einen ABPeoplePicker in einem NSMenuItem verwende. Das klappt alles wunderbar, aber nun möchte ich das SearchField des ABPeoplePicker so konfigurieren, dass die Action des PeoplePicker, die für die Suche zuständig ist immer feuert, wenn der User aufhört zu tippen bzw. wenn möglich auch während dem Tippen.

    Jetzt das Problem: Die Action wird nur ausgeführt, wenn ich mit Enter bestätige oder Tab drücke. Hier ein Auszug aus dem Quellcode:

    Quellcode

    1. NSMenuItem *abPeoplePicker = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
    2. [abPeoplePicker setTarget:self];
    3. [abPeoplePicker setEnabled:YES];
    4. [[[peoplePicker _searchField] cell] setSendsWholeSearchString:NO];
    5. [[peoplePicker _searchField] setContinuous:YES];
    6. [[[peoplePicker _searchField] cell] setSendsSearchStringImmediately:YES];
    7. [[[peoplePicker _searchField] cell] setSendsActionOnEndEditing:YES];
    8. [abPeoplePicker setView:peoplePicker];


    Weiß jemand, ob ich irgendwo etwas beim SearchField falsch eingestellt habe bzw. was ich machen muss, damit die Action auch während der User tippt bzw. eine Pause beim Tippen einlegt ausgeführt wird?

    Danke und Grüße.
  • Schade, dass ich keine Antworten bekommen habe. Aber für alle, die es interessiert, ich habe es wie folgt selbst gelöst:

    Zunächst setDelegate auf das Suchfeld des PeoplePicker ausführen, bevor man den PeoplePicker als View für das StatusItem setzt.

    Quellcode

    1. [[peoplePicker _searchField] setDelegate:self];


    Dann noch bestimmen, was passieren soll, wenn der Text im Suchfeld sich ändert, sprich der User einen weiteren Buchstaben / Ziffer tippt oder entfernt.

    Quellcode

    1. - (void)controlTextDidChange:(NSNotification *)aNotification {
    2. [[peoplePicker _searchField] performClick:self];
    3. }


    Eigentlich ganz einfach. :)

    Gruß.