你可以使用shouldChangeCharactersInRange:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
return ([textField.text length] + [string length] - range.length > 20) ? NO : YES;
}
編輯: 對不起。對於你的UISearchBar必須使用
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
return ([searchBar.text length] + [text length] - range.length > 20) ? NO : YES;
}
編輯: 見註釋下面
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
return ([searchBar.text length] + [text length] - range.length <= 20);
}
完美!非常感謝!) –
如果我測試並達到最大字符數,則不會調用searchBarButtonClicked-Method。這對我更好:http://stackoverflow.com/a/7317394/701900 – matzino
只是一個風格的東西:否:是的有點醜。爲什麼不測試<= 20並放棄? NO:是 –