如何在Cocoa中验证反向变换输入字段的值?

时间:2011-08-31 07:00:13

标签: cocoa cocoa-bindings

情景:

  • 两个文字输入字段FieldAFieldB
  • 值存储在单个变量Var
  • FieldA的值可以从FieldB的值得出,反之亦然(想想C对F)
  • 定义了一个值变换器,可以从A转换为B,也可以从B转换为A
  • FieldA通过对象控制器绑定到Var(模型键路径指向Var
  • FieldB也绑定到Var(拖把设置为Var),但也定义了值变换器。

所以这很好用。如果我在FieldA中输入内容,FieldB会更新,如果我在FieldB中输入内容,FieldA会相应更新。

现在我想做一些现场验证工作。所以我:

  • 定义validateVar
  • FieldA
  • 上的IB中,立即验证

到目前为止一切顺利。如果我在FieldA输入垃圾,validateVar会返回NO,我会收到一条很好的错误消息。

$ 1M问题是,如何在FieldB发生变更后对其进行验证?

我不能(真的)依赖于B转换为A这一事实,如果A无效,我会收到一条消息。

我的想法是在反向值转换函数中进行验证并返回超出validateVar范围的内容,但我认为这不是很好。

有没有办法做validateFieldB

之类的事情

PS。 validateVar使用FieldB的反向转换值调用FieldB,因此有效地将FieldA转换为FieldA值,然后{{1}}调用验证函数。

PPS。 OS X Lion。 XCode 4.1。

0 个答案:

没有答案