W kontrolce UISearchBar jest sposób na zmianę tytułu klawisza wyszukiwania klawisza na Gotowe?Zmiana nazwy przycisku wyszukiwania UISearchBar/klawiatury Tytuł
Odpowiedz
Dla searchbar nazwie tablesearchbar:
// Set the return key and keyboard appearance of the search bar
for (UIView *searchBarSubview in [tableSearchBar subviews]) {
if ([searchBarSubview conformsToProtocol:@protocol(UITextInputTraits)]) {
@try {
[(UITextField *)searchBarSubview setReturnKeyType:UIReturnKeyDone];
[(UITextField *)searchBarSubview setKeyboardAppearance:UIKeyboardAppearanceAlert];
}
@catch (NSException * e) {
// ignore exception
}
}
}
Od klawiatur Alert stylu są półprzezroczyste, widzę mój pogląd za nim. Nie wygląda to zbyt dobrze, ponieważ mam za klawiaturą wiele elementów, które utrudniają wyróżnianie się klawiszy. Chciałem mieć całkowicie czarną klawiaturę.
Tak więc animowałem czarny UIImageView na miejsce za klawiaturą, gdy tekst jest edytowany. Daje to wygląd całkowicie czarnej klawiatury.
- (void)textFieldDidBeginEditing:(UITextField *)textField {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.25];
blackBoxForKeyboard.frame = CGRectMake(0, 377, 320, 216);
[UIView commitAnimations];
}
Jednym z bardziej przydatna wskazówka, do Run Loop kodu (w "@try") sekcji.
Umożliwiło „Gotowe” przycisk, gdy pole tekstowe jest puste:
UITextField *tf = (UITextField *)searchBarSubview;
tf.enablesReturnKeyAutomatically = NO;
Dzięki! Działa to również z rozwiązaniem Gregory dla iOS7. – jbandi
Ponieważ jest to protokół z metod opcjonalnych, należy przetestować każdą metodę oddzielnie zamiast próbować wzrok.
for (UIView *searchBarSubview in searchBar.subviews)
{
if ([searchBarSubview conformsToProtocol:@protocol(UITextInputTraits)])
{
// keyboard appearance
if ([searchBarSubview respondsToSelector:@selector(setKeyboardAppearance:)])
[(id<UITextInputTraits>)searchBarSubview setKeyboardAppearance:UIKeyboardAppearanceAlert];
// return key
if ([searchBarSubview respondsToSelector:@selector(setReturnKeyType:)])
[(id<UITextInputTraits>)searchBarSubview setReturnKeyType:UIReturnKeyDone];
// return key disabled when empty text
if ([searchBarSubview respondsToSelector:@selector(setEnablesReturnKeyAutomatically:)])
[(id<UITextInputTraits>)searchBarSubview setEnablesReturnKeyAutomatically:NO];
// breaking the loop when we are done
break;
}
}
To będzie pracować dla iOS < = 6. Dla iOS> = 7, trzeba pętli w searchBar.subviews[0].subviews
.
Jako iOS 7 Beta 5, odpowiedź Run Loop nie dla mnie, ale to zrobił:
for(UIView *subView in [searchBar subviews]) {
if([subView conformsToProtocol:@protocol(UITextInputTraits)]) {
[(UITextField *)subView setReturnKeyType: UIReturnKeyDone];
} else {
for(UIView *subSubView in [subView subviews]) {
if([subSubView conformsToProtocol:@protocol(UITextInputTraits)]) {
[(UITextField *)subSubView setReturnKeyType: UIReturnKeyDone];
}
}
}
}
Na wypadek, gdyby nie było to jasne, powodem, dla którego użyje się/else, jest zgodność z poprzednią zgodnością iOS 6, natomiast w przypadku iOS 7. –
fantastyczna odpowiedź. to działa na iOS 7. dziękuję – Katushai
Działa to w iOS8 –
Próbowałem wszystkich rozwiązań pokazanych tutaj, a żaden z nich nie pracował dla mojego UISearchBar (xcode5 kompilacja dla iOS7). Skończyło się tym funkcji rekurencyjnej, który pracował dla mnie:
- (void)fixSearchBarKeyboard:(UIView*)searchBarOrSubView {
if([searchBarOrSubView conformsToProtocol:@protocol(UITextInputTraits)]) {
if ([searchBarOrSubView respondsToSelector:@selector(setKeyboardAppearance:)])
[(id<UITextInputTraits>)searchBarOrSubView setKeyboardAppearance:UIKeyboardAppearanceAlert];
if ([searchBarOrSubView respondsToSelector:@selector(setReturnKeyType:)])
[(id<UITextInputTraits>)searchBarOrSubView setReturnKeyType:UIReturnKeyDone];
if ([searchBarOrSubView respondsToSelector:@selector(setEnablesReturnKeyAutomatically:)])
[(id<UITextInputTraits>)searchBarOrSubView setEnablesReturnKeyAutomatically:NO];
}
for(UIView *subView in [searchBarOrSubView subviews]) {
[self fixSearchBarKeyboard:subView];
}
}
I wtedy nazwał ją tak:
_searchBar = [[UISearchBar alloc] init];
[self fixSearchBarKeyboard:_searchBar];
W Xcode 5 + iOS7, wprowadzanie tekstu będzie w podsprawie, a nie w widoku podrzędnym. Zasadniczo skorzystałeś z mojego rozwiązania Xcode 4 i dodałeś wywołanie rekurencyjne. Aby uzyskać najlepsze wyniki, możesz przetestować wersję dla systemu iOS, a jeśli jest to iOS7, przejrzyj "subviews [0] .subviews" zamiast "subviews". –
Przynajmniej dla iOS 8, prosto:
[self.searchBar setReturnKeyType:UIReturnKeyDone];
Tylko obejmujące wszystkie wersje iOS:
NSArray *subviews = [[[UIDevice currentDevice] systemVersion] floatValue] < 7 ? _searchBar.subviews : _searchBar.subviews[0].subviews;
for (UIView *subview in subviews)
{
if ([subview conformsToProtocol:@protocol(UITextInputTraits)])
{
UITextField *textField = (UITextField *)subview;
[textField setKeyboardAppearance: UIKeyboardAppearanceAlert];
textField.returnKeyType = UIReturnKeyDone;
break;
}
}
Dla Swift zmienić klucz powrotny UISearchBar
searchBar.returnKeyType = UIReturnKeyType.Done
enum dostępne są poniżej
public enum UIReturnKeyType : Int {
case Default
case Go
case Google
case Join
case Next
case Route
case Search
case Send
case Yahoo
case Done
case EmergencyCall
@available(iOS 9.0, *)
case Continue
}
tylko przypomnienie! Jeśli przeszukiwarkaBar pozostaje pierwszą odpowiedzią, po zmianie metody returnKeyType należy zamknąć klawiaturę i ponownie ją wyświetlić, aby wyświetlić zmiany.
search.resignFirstResponder()
searchBar.returnKeyType = UIReturnKeyType.Done
search.becomeFirstResponder()
- 1. Zmiana nazwy przycisku po kliknięciu - Java JButton
- 2. Zmiana nazwy celu iOS
- 3. Zmiana nazwy przycisku "Usuń" w trybie edycji tableviewcontroller
- 4. UITableView tytuł nagłówka zmiana koloru
- 5. Javafx zmiana nazwy osx menu
- 6. Zmiana etykiety wyszukiwania DataTable
- 7. Zmiana nazwy pliku PHP
- 8. Zmiana koloru przycisku AlertDialog.Builder
- 9. Zmiana koloru tekstu przycisku po naciśnięciu przycisku
- 10. Xamarin Forms: jak ukryć tytuł przycisku Back?
- 11. Zmiana nazwy klawiszy słownika
- 12. Subversion, zmiana nazwy, Wha?
- 13. Zmiana nazwy tabeli dbo.AspNetUsers
- 14. MySQL - Zmiana nazwy kolumny
- 15. TypoScript: pobierz tytuł strony według nazwy strony
- 16. Zmiana nazwy procesu w Menedżerze zadań
- 17. Zmiana koloru przycisku w AlertDialog
- 18. Zmiana tekstu przycisku klawiatury "Zwrot"
- 19. zmiana koloru przycisku reaguje natywnie
- 20. jQuery zmiana koloru przycisku onclick
- 21. Zmiana koloru tła przycisku SearchView i zapytania
- 22. Alter Django - zmiana nazwy tytułu listy administracyjnej
- 23. Prevent Kursor Zmiana strony przycisku niepełnosprawnych
- 24. Ustaw funkcjonalność przycisku wstecznego widgetu wyszukiwania
- 25. Tworzenie niestandardowego przycisku wyszukiwania w Notatniku ++
- 26. UISearchDisplayController z przycisku nie domyślnego pola wyszukiwania
- 27. Zmiana nazwy odległego oddziału git
- 28. Zmiana nazwy pliku w PyCharm
- 29. Inline TinyMCE nazwy wejściowe zmiana
- 30. Zmiana nazwy widelca dla Github
Tutaj wyjaśniłem http://stackoverflow.com/a/26712861/2981840 – Chidhambaram