Как я могу ограничить количество символов в XLForm? - PullRequest
0 голосов
/ 08 января 2019

Я использую [row.cellConfigAtConfigure setObject: @ (5) forKey: XLFormTextViewMaxNumberOfCharacters] invaild

row = [XLFormRowDescriptor formRowDescriptorWithTag:kHouseTitle rowType:XLFormRowDescriptorTypeTextView title:@"HouseTitle"];
row.value = self.houseInfo.title;
[row.cellConfigAtConfigure setObject:@(5) forKey:XLFormTextViewMaxNumberOfCharacters];
[section addFormRow:row];

потому что мне нужны строки различной длины. теперь я нахожу способ справиться с этим.

-(UITextField *)getCurrentTextFiledWithRow:(XLFormRowDescriptor *)row {
XLFormBaseCell *cell = [row cellForFormController:self];
if ([cell isKindOfClass:[XLFormTextFieldCell class]]) {
    XLFormTextFieldCell *xlFormTextFieldCell = (XLFormTextFieldCell *)cell;
    return xlFormTextFieldCell.textField;
}
else {
    return nil;
}

}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
XLFormRowDescriptor *buildingAreaRow = [self.form formRowWithTag:kBuildingArea];
XLFormRowDescriptor *livingAreaRow = [self.form formRowWithTag:kLivingArea];
XLFormRowDescriptor *housePriceRow = [self.form formRowWithTag:kHouseCellingPrice];
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];

if ([self getCurrentTextFiledWithRow:buildingAreaRow] == textField) {
    if(newString.length > 4){
        return NO;
    }
}
else if ([self getCurrentTextFiledWithRow:livingAreaRow] == textField) {
   // TODO
}
else if([self getCurrentTextFiledWithRow:housePriceRow] == textField) {
   //TODO
}
return YES;

}

1 Ответ

0 голосов
/ 08 января 2019

вы можете использовать таким образом, я думаю,

NSString *const XLFormTextViewMaxNumberOfCharacters = @"textViewMaxNumberOfCharacters";

 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{
 if (self.textViewMaxNumberOfCharacters) 
  {
    // Check maximum length requirement
    NSString *newText = [textView.text stringByReplacingCharactersInRange:range withString:text];
    if (newText.length > self.textViewMaxNumberOfCharacters.integerValue) {
        return NO;
    }
 }

//perform based on your need
  return [self.formViewController textView:textView shouldChangeTextInRange:range replacementText:text];
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...