今天早些時候遇到同樣的問題,這裏是我真正醜陋的解決方法,我可能不會使用我自己。
for(UIView *subView in searchBar.subviews) {
if([subView isKindOfClass: [UITextField class]]){
UITextField *searchField = (UITextField *)subView;
CGFloat myWidth = 26.0f;
CGFloat myHeight = 30.0f;
UIButton *myButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, myWidth, myHeight)];
[myButton setImage:[UIImage imageNamed:@"searchbariconclear"] forState:UIControlStateNormal];
[myButton setImage:[UIImage imageNamed:@"searchbariconclear"] forState:UIControlStateHighlighted];
[myButton addTarget:self action:@selector(clearsearchbar) forControlEvents:UIControlEventTouchUpInside];
searchField.rightView = myButton;
searchField.rightViewMode = UITextFieldViewModeAlways;
searchField.clearButtonMode = UITextFieldViewModeNever;
}
}
然後..
- (void)clearsearchbar {
for(UIView *subView in searchBar.subviews) {
if([subView isKindOfClass: [UITextField class]]){
UITextField *searchField = (UITextField *)subView;
searchField.text = nil;
}
}
}
三個問題這種方法..
由於我們的搜索欄的子視圖裏面挖圍繞它可以打破一些一天一個OS更新。
這不完全像UISearchBarIconClear,因爲清除圖標總是可見的。您可以嘗試使用這種方法與其他UITextFieldViewModes進行測試,我主要並不是因爲從我所知道的其他人會因爲某種原因或其他原因而變得理想。
也許這只是我,但我並不認爲在解決問題時引入兩個問題是一種解決方案。 :-)
如果任何人有解決這個問題的一個更好的方法,我很樂意聽到它。
對我來說,這個圖像完美的作品...即使是突出顯示的狀態... – jimpic