gpt4 book ai didi

iphone - UITableViewCells 使用 textViewDidEndEditing 将数据写入 plist

转载 作者:行者123 更新时间:2023-11-28 22:46:23 24 4
gpt4 key购买 nike

在 Cell.m 中,我编写了这段代码来将一些字符串添加到字典中:

- (void)textViewDidEndEditing:(UITextView *)textView {

if (cellIndex == 0) {
[[dataSource objectAtIndex:dataIndex] setObject:self.cellTextView.text forKey:@"Usersmell"];
}
if (cellIndex == 1) {
[[dataSource objectAtIndex:dataIndex] setObject:self.cellTextView.text forKey:@"Usertaste"];
}
if (cellIndex == 2) {
[[dataSource objectAtIndex:dataIndex] setObject:self.cellTextView.text forKey:@"Usersuits"];
}
if (cellIndex == 3) {
[[dataSource objectAtIndex:dataIndex] setObject:self.cellTextView.text forKey:@"Usernotes"];
}

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Objects.plist"];

//removed some code here that gets the index of dictionary for replacement, then:

[allObjectsArray replaceObjectAtIndex:index withObject:[NSDictionary dictionaryWithDictionary:[dataSource objectAtIndex:dataIndex]]];
[allObjectsArray writeToFile:path atomically:YES];
}

然后,在 TableViewController.m 中:

-(IBAction)doneButtonPressed:(id)sender {
[self.navigationController popViewControllerAnimated:YES];
}

用户现在返回到 DetailViewController,其中包含有关对象的信息以及用户添加的新信息。信息是从 viewWillAppear 中的 plist 中提取的。

但问题是,如果用户在没有先关闭键盘的情况下点击“完成”按钮(触发 textViewDidEndEditing),最后编辑的单元格 中的文本不会显示在 DetailViewController 中。

但是如果用户再返回一步然后重新输入对象 (DetailViewController),文本就在那里。因此 textViewDidEndEditing 的触发太迟,父 View 中的 viewWillAppear 无法在点击“完成”按钮时抓取文本。

如何解决?

最佳答案

在处理“完成”按钮的方法中,调用 [self.view endEditing:YES] 作为方法的第一行。这将导致键盘关闭,允许您在屏幕关闭之前处理数据。

-(IBAction)doneButtonPressed:(id)sender {
[self.view endEditing:YES];

[self.navigationController popViewControllerAnimated:YES];
}

关于iphone - UITableViewCells 使用 textViewDidEndEditing 将数据写入 plist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13125591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com