拦截保存在核心数据文档中

时间:2012-04-20 23:19:38

标签: cocoa core-data nsdocument

我有一个带有小文本框的窗口,绑定到Core Data属性。用户在文本框中输入的值需要在某些参数范围内。这些参数是动态的。如果输入的值超出参数,则会显示一个对话框,询问用户是否要恢复到先前的值,将值设置为最小值等。我已实现controlTextDidEndEditing方法来拦截并验证用户的值进入。我的问题是当用户保存或退出时。用户可以输入错误值,选择保存或退出并保存值,绕过验证。有没有办法在保存之前调用我的验证方法?谢谢!

1 个答案:

答案 0 :(得分:1)

您应该在NSManagedObject子类中实现验证,而不是使用文本字段委托。然后,您可以强制执行哪些值有效,并在输入无效值时返回相应的错误消息。这样做意味着模型负责执行有效性,这是合理的做法。

appropriate section of the Core Data documentation中有更多关于验证的信息。