Benutzerdefinierte UISearchBar mit UISearchController

8

Die Dokumentation für UISearchController besagt, dass Sie - searchBar überschreiben können, um eine benutzerdefinierte Unterklasse von UISearchBar für den zu verwendenden Controller bereitzustellen. Die benutzerdefinierte Suchleiste wird verwendet, und ihre eigenen Delegatmethoden werden korrekt aufgerufen, aber die UISearchResultsUpdating -Methode wird nicht mehr aufgerufen, wenn sich die Suchleiste ändert. Muss ich viele Dinge manuell vornehmen, oder fehlt mir etwas, damit sich der Controller verhält wie bei einer nativen Suchleiste?

    
farski 18.09.2014, 04:32
quelle

4 Antworten

3

Dies ist ein bekannter Fehler. Leider gibt es keine Problemumgehung, die keine private API beinhaltet.

    
MyztikJenz 19.09.2014 18:53
quelle
3

Überschreibt den SearchBar-Getter in Ihrer benutzerdefinierten UISearchController-Klasse. Er muss Ihre benutzerdefinierte SearchBar zurückgeben und muss bereits initialisiert sein. Anschließend richten Sie seine Eigenschaften erst nach dem UISearchController-Befehl ein. Auf diese Weise werden alle UISearchController-Funktionen beibehalten:

%Vor%

Und das ist meine benutzerdefinierte searchBar:

%Vor%

Init-Beispiel:

%Vor%     
Marco M 25.03.2016 11:25
quelle
2

Wenn Sie UISearchController von der Unterklasse ableiten, können Sie UISearchBar in Getter anpassen (Setter existiert nicht).

Beispiel - in der Implementierung der Unterklasse:

%Vor%

Hoffe das hilft jemandem.

    
DarkoM 12.01.2015 20:10
quelle
-1

Ich denke, es sollte sich so verhalten.

Dies ist von UISearchController.h

%Vor%

Die Delegate-Methode (updateSearchResultsForSearchController :) gibt den Such-Controller zurück, damit Sie auf die Suchleiste zugreifen können.

Sie können dies einfach über die Delegatmethoden für benutzerdefinierte Suchleisten tun.

    
Matt Tang 11.11.2014 17:14
quelle