目的:我想在搜索栏的文本字段中将右视图设置为标签
以下代码在 ios 6 中可以正常工作以执行相同的操作:
UISearchBar *search = [[UISearchBar alloc] init];
[search setTintColor:[UIColor grayColor]];
search.frame = CGRectMake(0, 150, 320,50);
search.delegate = self;
UITextField *searchField=[search.subviews objectAtIndex:1];//Changed this line in ios 7
searchField.backgroundColor=[UIColor redColor];
UILabel *label=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
label.text=@"Hello";
label.textColor=[UIColor greenColor];
searchField.rightView = label;
searchField.rightViewMode = UITextFieldViewModeAlways;
[self addSubView:search];
当我在 ios 7 中运行相同的代码(xcode 7.0.2 完全更新)时,它给了我错误,在谷歌搜索后我得到了搜索栏到文本字段的层次结构已经改变,所以我修改了我的代码:
将上面代码中的注释行替换为:
UITextField *searchField=[((UIView *)[search.subviews objectAtIndex:0]).subviews lastObject];
这样做之后,它没有给我任何错误(还通过打印文本字段的描述检查日志并且一切正常),当我运行它时,它给出了带有红色背景的文本字段,但没有向我显示 rightView 的标签。现在,任何人都可以帮助我如何显示这个右视图。