您好我创建了一个UITextField,我想将它限制为只有3个字母。如果没有启用按钮,如果它为空则禁用按钮。有谁知道怎么做?
我已经给了它一个去但是如果我输入3个字母它显示3但不会关闭键盘它不能正常工作。我不禁感觉这是一个更好的方法来做到这一点。
继承人我做过的事情
- (void)hideKeyboardAction {
NSLog(@"Hide");
if([self.playerName length] >= 4){
[self.nameTextField resignFirstResponder];
} else if([self.playerName length] < 3) {
[self.addToScores setEnabled:FALSE];
}
}
- (IBAction)hideKeyboard:(id)sender {
[self hideKeyboardAction];
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
self.playerName = [textField.text stringByReplacingCharactersInRange:range withString:string];
if([self.playerName length] <4 ){
[self hideKeyboardAction];
}
if([self.playerName length] > 3){
[self.addToScores setEnabled:FALSE];
}
BOOL shouldStayOpen = !([self.playerName length] > 3);
return shouldStayOpen;
}
答案 0 :(得分:0)
你不应该替换textField:shouldChangeCharactersInRange:replacementString:中的文本。您应该检查textField中文本的长度,比较范围的长度和replacementString的长度,并决定(返回YES / NO)是否替换。您还可以根据计算出的替换后文本长度,启用/禁用此方法中的按钮。
在我看来,没有必要隐藏键盘。