إصلاح عدد الأحرف المسموح به في حقل النص
-
19-08-2019 - |
سؤال
وكيف يمكن فرض الحد حرف ثابت في حقل النص في 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;
}