在UISearchbar中有限制输入的代理方法,在里面设置即可
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text NS_AVAILABLE_IOS(3_0); // called before text changes
{
if (range.location > IMPUT_MAX)
return NO;
return YES;
}
当输入大于限定值时用户就无法继续输入了。但是这样做仍然有一个问题,当用户粘贴或者输入法联想词都会造成输入的值大于限定值,从而导致键盘删除按钮失去作用,需要在SearchBar内容改变时代理方法中作一些处理:
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText // called when text changes (including clear)
{
if (searchBar.text.length > IMPUT_MAX) {
searchBar.text = [searchBar.text substringToIndex:16];
}
}