В моем проекте используется XLForm и хочу отображать значение одной из строк в определенном формате.Как форматировать значение строки XLForm
Строка «Годовой оборот», и я хочу отобразить значение, введенное пользователем в качестве валюты - например, если пользователь вводит в поле формы, поле должно быть обновлено, чтобы отобразить это: $ 1,000,000.00
Как это сделать?
Это, как поле формы инициализируется в initializeForm():
-(void)initializeForm
{
// Other fields in the form...
// Annual turnover Section
self.section = [XLFormSectionDescriptor formSectionWithTitle:formLabel8AnnualTurnover];
//section.footerTitle = @"Describe new products";
[self.formDescriptor addFormSection:self.section];
// Annual turnover
self.row = [XLFormRowDescriptor formRowDescriptorWithTag:formField8AnnualTurnover rowType:XLFormRowDescriptorTypeText title:nil];
self.row.required = NO;
rowDescriptor8AnnualTurnover = self.row;
[self.section addFormRow:self.row];
// Other fields in the form...
self.form = self.formDescriptor;
}
Согласно the documentation, я должен поймать, что пользователь взаимодействует с полем, а затем изменить значение поля и обновления ряд.
Это, как я ловлю, что пользователь ввел что-то в поле:
-(void)formRowDescriptorValueHasChanged:(XLFormRowDescriptor *)rowDescriptor oldValue:(id)oldValue newValue:(id)newValue
{
[super formRowDescriptorValueHasChanged:rowDescriptor oldValue:oldValue newValue:newValue];
// Get the current form values
formValues = [self.form formValues];
int i = 0;
if ([rowDescriptor.tag hasPrefix:formField8AnnualTurnover]){
NSString *annualTurnoverValue = [(XLFormOptionsObject*)formValues[formField8AnnualTurnover] displayText];
rowDescriptor8AnnualTurnover.value = [NSString stringWithFormat:@"R %@", annualTurnoverValue]; //This breaks.
[self reloadFormRow:rowDescriptor8AnnualTurnover];
}
}
делает' formRowDescriptorValueHasChanged' работу? – anhtu
Он сообщает вам, какой rowDescriptor изменился, поэтому на основе этого вы можете делать все. Я использовал его, чтобы скрыть/отобразить другую строку, основанную на выборе одной строки. – marienke
Да. Я знаю. Я имею в виду, что ваш код работает нормально? 'rowDescriptor8AnnualTurnover.value = [NSString stringWithFormat: @" R% @ ", yearTurnoverValue]; // Это разрывы. – anhtu