У меня есть UITableViewController с двумя пользовательскими ячейками - одна содержит UITextField (для ввода пользователем названия), а другая - UITextView (для ввода пользователем описания).Всякий раз, когда они меняются, я хочу обновить свой объект памяти (который представляет собой структуру с двумя переменными - memoryTitle и memoryDescription).
MemoryTitle кажется достаточно простым - на моем ViewController у меня есть следующее:
@IBAction func memoryTitleChanged(_ sender: UITextField) {
memory.memoryTitle = sender.text ?? ""
}
Хотя UITextView меня немного смутил.У меня есть две проблемы - я не могу создать действие таким же образом, как я могу для UITextField, поэтому моей следующей мыслью было сделать ViewController делегатом и использовать textViewDidChange для обновления memory.memoryDescription, но это подводит меня к моемуВторая проблема.
Чтобы динамически изменить размер ячейки UITextView, я использовал следующий учебник, который отлично работает (https://medium.com/@georgetsifrikas/embedding-uitextview-inside-uitableviewcell-9a28794daf01), чтобы сделать мою собственную ячейку такой:
class DetailTextTableViewCell: UITableViewCell, UITextViewDelegate {
//Found below method for resizing UITextView and cell - https://medium.com/@georgetsifrikas/embedding-uitextview-inside-uitableviewcell-9a28794daf01
@IBOutlet weak var memoryDescriptionTextView: UITextView!
var textChanged: ((String) -> Void)?
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
memoryDescriptionTextView.delegate = self
memoryDescriptionTextView.backgroundColor = UIColor.red
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
//Found below method for resizing UITextView and cell - https://medium.com/@georgetsifrikas/embedding-uitextview-inside-uitableviewcell-9a28794daf01
func textChanged(action: @escaping (String) -> Void) {
self.textChanged = action
}
func textViewDidChange(_ textView: UITextView) {
textChanged?(textView.text)
}
}
Теперь я застрял с DetailTextTableViewCell, являющимся делегатом UITextView, поэтому я не уверен, как заставить его обновлять мой объект памяти в ViewController при изменении текста. Если у кого-то есть какие-либо идеи или рекомендации, это будет высоко ценится!
Заранее спасибо.