ユーザーの入力に基づいてフォームに行を追加しようとしています。
たとえば、フォームに追加する行数を尋ねるフィールドがあります。入力が 5 の場合、さらに 5 行が生成され、フォームに追加されます。
現在、XLForm には単一の行 (複数値フォームなど) を追加する機能があります。毎回単一の行を追加するのではなく、同じことを一括で行うことができるかどうかを考えていました。
これは可能ですか?
ユーザーの入力に基づいてフォームに行を追加しようとしています。
たとえば、フォームに追加する行数を尋ねるフィールドがあります。入力が 5 の場合、さらに 5 行が生成され、フォームに追加されます。
現在、XLForm には単一の行 (複数値フォームなど) を追加する機能があります。毎回単一の行を追加するのではなく、同じことを一括で行うことができるかどうかを考えていました。
これは可能ですか?
XLFormを扱ってからしばらく経ちましたが、次のようなものがうまくいくと思います:
-(void) formRowDescriptorValueHasChanged:(XLFormRowDescriptor *)formRow oldValue:(id)oldValue newValue:(id)newValue {
[super formRowDescriptorValueHasChanged:formRow oldValue:oldValue newValue:newValue];
NSNumber *newVal = [newValue valueData];
int count = newVal.intValue; //5
for(int i=0; i<count; i++) {
NSString *title = [NSString stringWithFormat:@"title %d",i+1];
XLFormRowDescriptor *row = [XLFormRowDescriptor formRowDescriptorWithTag:title rowType:XLFormRowDescriptorTypeText];
[row.cellConfigAtConfigure setObject:title forKey:@"textField.placeholder"];
[self.form addFormRow:row afterRowTag:someOtherRow.tag];
}
}