1

Cocos2d 中如何对文本字段进行固定字符限制?

4

3 回答 3

5

要修复 UITextField 中的最大字符数,您可以实现 UITextField 委托方法textField:shouldChangeCharactersInRange以在用户尝试编辑超过固定长度的字符串时返回 false。

//Assume myTextField is a UITextField
myTextField.delegate = self;

//implement this UITextFiledDelegate Protocol method in the same class
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if ([textField.text length] > kMaxTextFieldStringLength)
        return NO;
    else
        return YES; 
}
于 2009-01-23T07:45:16.120 回答
2

要使用户能够使用退格,您应该使用这样的代码(当您按下退格时 range.length 仅为零):


myTextField.delegate = self;

//implement this UITextFiledDelegate Protocol method in the same class - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { if (textField.text.length >= 10 && range.length == 0) return NO; return YES; }

于 2009-08-19T06:02:34.390 回答
1

仅当用户在文本字段的末尾(最后一个字符)进行编辑时,上面的示例才有效。要检查输入文本的实际长度(无论用户在哪里编辑光标位置),请使用以下命令:

myTextField.delegate = self;

//implement this UITextFiledDelegate Protocol method in the same class
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if (range.location > kMaxTextFieldStringLength)
        return NO;
    else
        return YES; 
}
于 2009-07-17T04:37:05.487 回答