- У меня есть UITextView внутри каждой ячейки UITableView
- Я использую Базовые данные для сохранения данных, которыенабрал в UITextView
- Я хотел бы сохранить текст, набранный в UITextView, как только пользователь закончит его редактирование
- Я добавил UITextViewDelegate в мою TableViewCell class
- Я использую Уведомления , чтобы опубликовать новый текст на TableViewController
Я могу получитьновый текст для TableViewController , но я не знаю, как получить номер строки ячейки, содержащей текстовое представление, в котором был набран текст.Мне нужно знать номер строки (или объект в этой строке), чтобы обновить правильный NSManagedObject.
Что я пробовал:
Я думал об использовании тегов, но так как мне нужно постоянно добавлять и удалять строки, это не лучший подход
Я пытался использовать DidSelectedRowAtIndexPath , но он не срабатывает, когда пользователь касается UITextView (UITextView покрывает до 80% одной ячейки)
В классе TableViewCell у меня есть:
func textViewDidEndEditing(_ textView: UITextView) {
// Post notification
let userInfo = [ "text" : textView.text]
NotificationCenter.default.post(
name: UITextView.textDidEndEditingNotification,
object: nil,
userInfo: userInfo as [AnyHashable : Any])
}
В TableViewController у меня есть:
//Subscribe
NotificationCenter.default.addObserver(self,
selector: #selector(textEditingEnded(notification:)),
name: UITextView.textDidEndEditingNotification,
object: nil)
@objc func textEditingEnded(notification:Notification) {
guard let text = notification.userInfo?["text"] as? String else {return}
print ("text: \(text)")
}
Не стесняйтесь спрашиватьбольше деталей.Я буду признателен за любую помощь, которую я могу получить!