在 UITextView 委托方法 textViewDidChange 中将文本保存在 Core Data 中是不是有效?

Posted

技术标签:

【中文标题】在 UITextView 委托方法 textViewDidChange 中将文本保存在 Core Data 中是不是有效?【英文标题】:Is it efficient to save text in Core Data in UITextView delegate method textViewDidChange?在 UITextView 委托方法 textViewDidChange 中将文本保存在 Core Data 中是否有效? 【发布时间】:2016-06-28 01:56:11 【问题描述】:

我的UIViewController 中有多个UITextView 实例,并希望在单击视图控制器的view disappears 或特定按钮时将键入的文本保存在Core Data 中。理想情况下,我会使用 textViewDidEndEditing 委托方法来保存对 Core Data 的更改,但问题是如果用户更改文本视图然后点击所述按钮,则不会调用此委托方法。那么我应该如何保存更改呢?

我能想到的一个选择是利用textViewDidChange - 但是每次输入字符时都会调用该方法。如果我在此方法中将文本保存到Core Data,那不是效率低下?

您还有其他方法可以推荐给我吗?

【问题讨论】:

为什么没有点击按钮,视图会消失?您很可能应该将保存操作与按钮点击相关联。 【参考方案1】:

目前尚不清楚按钮按下和保存数据之间究竟有什么关系,但一种方法是利用 viewWillDisappear: 并在您知道文本输入是最终的并且用户离开时触发您的核心数据插入。

您可以在点击按钮时触发相同的插入方法。

【讨论】:

【参考方案2】:

你可能有一个本地 NSString 变量来保存你的字符串的更新值,当你完成你的屏幕工作时,你可以将它保存到 CoreData。它可能在: - 按键触摸 - 视图消失 - 页面出现错误

如果你不想有保存动作,你也可以设置一个定时器,从textViewDidChange的最后一个编辑时刻开始计时,如果最后3-5没有变化,你可以触发定时器秒。

【讨论】:

以上是关于在 UITextView 委托方法 textViewDidChange 中将文本保存在 Core Data 中是不是有效?的主要内容,如果未能解决你的问题,请参考以下文章

在 UITextView 委托方法 textViewDidChange 中将文本保存在 Core Data 中是不是有效?

UITextView 设置属性后做啥?

UITextView 委托未获得所有方法调用

在不使用委托方法的情况下检测 UITextView 和/或 UITextField 上的 SELECTION 更改

PopoverPresentationController 内部的 UITextView 不响应其委托方法

UItextView 委托方法未在子视图内调用