首页 > 解决方案 > 如何获取编辑 UITextView 的单元格的行号?

问题描述

我能够将新文本获取到TableViewController但我不知道如何获取包含文本视图的单元格的行号,其中文本被键入。我需要知道行号(或该行中的对象)来更新正确的 NSManagedObject。

我试过的:

在 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)")   
    }

不要犹豫,询问更多细节。我会很感激我能得到的每一点帮助!

标签: swiftuitableviewuitextview

解决方案


  • NSManagedObject在表格视图单元格中创建类型的属性。
  • 在 Interface Builder 中delegate,将文本视图连接到单元格。
  • 在控制器中,将适当的数据源项传递cellForRowAt给单元格。
  • 删除观察者,而不是发布通知,NSManagedObject直接更改实例中的属性并保存上下文。

由于NSManagedObject实例是引用类型,因此更改将持续存在。


推荐阅读