兩種方法
1:直接遍歷searchBar子視圖,這種方法不太好,因為隨着版本升級它內部層級可能會發生變化(例如IOS11的導航欄,懂得自然懂)
2:取私有變量
UIButton *cancel = [self valueForKey:@"_cancelButton"];
[cancel setTitle:@"取消" forState:UIControlStateNormal];
//這種狀態不寫是不行的
[cancel setTitle:@"取消" forState:UIControlStateDisabled];
[cancel setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[cancel setTitleColor:[UIColor blackColor] forState:UIControlStateDisabled];
cancel.titleLabel.font = [UIFont systemFontOfSize:14];
Tips:私有變量是如何取到的,下面給出一段代碼(看打印后自己憑命名猜的)
//獲取第一個成員變量的地址
Ivar *ivars = class_copyIvarList([UISearchBar class], &count);
for (int i = 0; i < count; i++) {
Ivar ivar = *(ivars + i);
NSLog(@"%s",ivar_getName(ivar));
}
//誰copy誰釋放
free(ivars);