在iOS 7.1中,UISearchBar的文本和占位符属性不再起作用

从iOS 7.1开始,我一直无法读取文本,也没有设置UISearchBar的占位符。 text属性始终返回nil,search栏始终是空白的白色矩形。 在iOS 7.0及以下,我没有这样的问题。 7.1是否需要我以不同的方式对待UISearchBars以使textplaceholder工作?

 - (void)viewDidLoad { [super viewDidLoad]; self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)]; self.searchBar.placeholder = @"placeholder doesn't work in 7.1"; [self.view addSubview:self.searchBar]; self.button = [[UIButton alloc] initWithFrame:CGRectMake(0.0, 44.0, 100.0, 44.0)]; self.button.backgroundColor = [UIColor redColor]; [self.button setTitle:@"print text" forState:UIControlStateNormal]; [self.button addTarget:self action:@selector(printSearchText) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:self.button]; } - (void)printSearchText { NSLog(@"print nil here: %@", self.searchBar.text); } 

这可能与您的问题有关,也可能不是,但是我们遇到类似的问题,这是由我们在UISearchBar定义的类别造成的。 我们添加了一个textField属性,因为一些我不会介入的黑客原因。 看来,苹果在iOS 7.1添加了自己的内部textField属性,我们正在干涉它。

总是在类别方法/属性名称的前面加上一个好的理由。 🙂