将 maxlength 设置为特定的 UITextField
Set maxlength to specific UITextField
我尝试将 maxlength 设置为我的 UITextfield,但它也会影响我的其他 UITextfield。
我尝试使用:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
// Prevent crashing undo bug – see note below.
if(range.length + range.location > textField.text.length)
{
return NO;
}
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return newLength <= 25;
}
我只想将最大长度设置为特定的 uitextfield。
它适用于 swift,试试这个
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let length = ((txtPhoneNumber.text?.count)! - range.length) + string.count
if length <= 9 {
return true
}
return false
}
首先,检查编辑文本字段。然后检查字符串的长度
- (BOOL)textField:(UITextField *) textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
/// always allow other textfields
if (textField != specificTextfield) {
return YES;
}
/// check max length
NSUInteger oldLength = [textField.text length];
NSUInteger replacementLength = [string length];
NSUInteger rangeLength = range.length;
NSUInteger newLength = oldLength - rangeLength + replacementLength;
BOOL returnKey = [string rangeOfString: @"\n"].location != NSNotFound;
return newLength <= MAXLENGTH || returnKey;
}
参考:Set UITextField Maximum Length
将标签添加到您的文本字段。并在委托 shouldChangeCharactersInRange 方法中检查文本字段是否对应于特定标签。
#define MAXLENGTH 10
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (textField.tag == 1){
NSUInteger oldLength = [textField.text length];
NSUInteger replacementLength = [string length];
NSUInteger rangeLength = range.length;
NSUInteger newLength = oldLength - rangeLength + replacementLength;
BOOL returnKey = [string rangeOfString: @"\n"].location != NSNotFound;
return newLength <= MAXLENGTH || returnKey;
}
return true;
}
我尝试将 maxlength 设置为我的 UITextfield,但它也会影响我的其他 UITextfield。
我尝试使用:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
// Prevent crashing undo bug – see note below.
if(range.length + range.location > textField.text.length)
{
return NO;
}
NSUInteger newLength = [textField.text length] + [string length] - range.length;
return newLength <= 25;
}
我只想将最大长度设置为特定的 uitextfield。
它适用于 swift,试试这个
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let length = ((txtPhoneNumber.text?.count)! - range.length) + string.count
if length <= 9 {
return true
}
return false
}
首先,检查编辑文本字段。然后检查字符串的长度
- (BOOL)textField:(UITextField *) textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
/// always allow other textfields
if (textField != specificTextfield) {
return YES;
}
/// check max length
NSUInteger oldLength = [textField.text length];
NSUInteger replacementLength = [string length];
NSUInteger rangeLength = range.length;
NSUInteger newLength = oldLength - rangeLength + replacementLength;
BOOL returnKey = [string rangeOfString: @"\n"].location != NSNotFound;
return newLength <= MAXLENGTH || returnKey;
}
参考:Set UITextField Maximum Length
将标签添加到您的文本字段。并在委托 shouldChangeCharactersInRange 方法中检查文本字段是否对应于特定标签。
#define MAXLENGTH 10
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if (textField.tag == 1){
NSUInteger oldLength = [textField.text length];
NSUInteger replacementLength = [string length];
NSUInteger rangeLength = range.length;
NSUInteger newLength = oldLength - rangeLength + replacementLength;
BOOL returnKey = [string rangeOfString: @"\n"].location != NSNotFound;
return newLength <= MAXLENGTH || returnKey;
}
return true;
}