簡體   English   中英

更改 UISearchBar 的鍵盤顏色

[英]Change keyboard color for UISearchBar

我真的很想更改鍵盤上“搜索”按鈕的顏色以匹配我的應用程序的主題。 但如果這是不可能的,至少我想做

self.searchBar.keyboardAppearance = UIKeyboardAppearanceDark;

但這不起作用,因為我猜,searchBar 不是 UITextField。 那么我如何才能成功呢? 我的意思是,更改鍵盤上“搜索”的顏色:無論是完全主題還是只是黑暗主題。

對於 iOS 8 使用

self.searchBar.keyboardAppearance = UIKeyboardAppearance.Dark

試試這個,它適用於 IOS 6、IOS 7 和 IOS 8:

[self setKeyboardOnSearchBar:self.searchBar];

和功能:

-(void)setKeyboardOnSearchBar:(UISearchBar *)searchBar
{
    for(UIView *subView in searchBar.subviews) {
        if([subView conformsToProtocol:@protocol(UITextInputTraits)]) {
            [(UITextField *)subView setKeyboardAppearance:UIKeyboardAppearanceAlert];
            [(UITextField *)subView setReturnKeyType:UIReturnKeySearch];
        } else {
            for(UIView *subSubView in [subView subviews]) {
                if([subSubView conformsToProtocol:@protocol(UITextInputTraits)]) {
                    [(UITextField *)subSubView setReturnKeyType:UIReturnKeySearch];
                    [(UITextField *)subSubView setKeyboardAppearance:UIKeyboardAppearanceAlert];
                }
            }
        }
    }
}

嘗試以下

for(UIView *subView in self.searchBar.subviews) {
        if([subView conformsToProtocol:@protocol(UITextInputTraits)]) {
            [(UITextField *)subView setKeyboardAppearance: UIKeyboardAppearanceDark];
        }
    }

Swift 4 更新,iOS 11+:

    searchBar.keyboardAppearance = .dark
    searchBar.keyboardAppearance = .light
    searchBar.keyboardAppearance = .default

斯威夫特 5,iOS 14:

如果搜索欄存在於特定視圖中(例如 SearchBarView),

UITextField.appearance(whenContainedInInstancesOf: [SearchBarView.self]).keyboardAppearance = .dark

只會對 SearchBarView 內的特定搜索欄造成更改。

否則,如果您想為所有搜索欄執行此操作,

UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).keyboardAppearance = .dark

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM