[英]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.