سؤال

وكيف يمكن فرض الحد حرف ثابت في حقل النص في Cocos2d؟

هل كانت مفيدة؟

المحلول

لإصلاح الحد الأقصى لعدد الأحرف في UITextField، هل يمكن أن تفعل تنفيذ textField:shouldChangeCharactersInRange UITextField مندوب طريقة للعودة كاذبة إذا حاول المستخدم لتحرير سلسلة الماضي طول ثابت.

//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; 
}

نصائح أخرى

لتمكين المستخدم لاستخدام مسافة للخلف، يجب عليك استخدام كود مثل هذا (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; }

والمثال أعلاه فقط يعمل إذا كان المستخدم يقوم بتحرير في نهاية حقل النص (الحرف الأخير). لفحص ضد طول الفعلي (بغض النظر عن مكان المستخدم editing- موضع المؤشر) من إدخال النص استخدام هذا:

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; 
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top