我有一个表格视图和一个文本字段。无论该人在该表视图中选择什么,都将显示在文本字段中。
示例:在我的表格视图中选择“一个”“两个”“三个”
如果我选择“一个”,我的桌面视图上会出现一个复选标记,我的文本字段中也会出现“一个”。
我知道如何使用stringByAppendingString将字符串添加到一起,所以当我选择“two”并且仍然选择“one”时,我的标签将显示为“onetwo”
现在我的问题:如果我要选择“一个”选择(或任何其他选择),我怎么能只删除这个连接字符串的某个部分?
示例:如果我按此顺序选择“threeonetwo”并且我想取消选择“one”,我的标签现在将显示为“threetwo”。
谢谢。
更新:这是我到目前为止所做的,而且我被困住了。
首先:我创建了一个可变数组:
NSMutableArray * toBeFilledTableData;
然后我分配了它:
toBeFilledTableData = [[NSMutableArray alloc] init];
然后,如果用户从表视图中选择该选项,我将添加一个对象:
[toBeFilledTableData addObject:@“one”];
我改变主意让文本字段显示为“threeonetwo”,我想在它们之间添加一个分号,所以我希望外观是“三个;一个;两个”。因此创建了一个字符串以在末尾添加分号:
NSString * combinedForces
combinedForces = [toBeFilledTableData componentsJoinedByString:@“;”]; (^但是没有显示我的分号,所以我只是将分号添加到addObject [除非有另一种方法可以做到])
然后我在文本字段中显示了该对象:
textField.text = combinedForces;
截至目前,1。我的列表没有填充,因为我点击了更多选项,并且在每个选项之间插入分号正在成为一个难题。我很感激任何帮助=)
答案 0 :(得分:2)
您可以使用所选项目维护数组或设置,而不是删除字符串的该部分。
在didSelectRowAtIndex
路径方法中,将所选字符串添加到数组中(或将其删除)并调用updateLabel
方法,该方法根据数组或集合的内容创建字符串。
因此,每次发生更改时都会重新创建字符串。
如果您想知道选择的顺序,请使用NSMutableOrderedSet
,如果您不需要知道订单,则可以使用NSMutableSet
。
答案 1 :(得分:0)
你可以用didSelectRowAtIndexPath&中的以下代码来做到这一点。 didDeselectRowAtIndexPath
NSString *lblString = @"";
NSArray *indexPathArray = [self.tableView indexPathsForSelectedRows];
for(NSIndexPath *index in indexPathArray)
{
NSString *subStr = [arrayDatasource objectAtIndex:index.row]; //perticular choice from your choice array
if([indexPathArray lastObject]!=index)
{
lblString = [lblString stringByAppendingString:[subStr stringByAppendingString:@";"]];
}
else
{
lblString = [lblString stringByAppendingString:subStr];
}
}