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

场景:

  • 两个文本输入字段FieldAFieldB
  • 值存储在一个变量Var
  • FieldA的值可以从FieldB的值中FieldB ,反之亦然(认为C vs F)
  • 有一个Value Transformer被定义为从A转换为B并且还从BA
  • FieldA通过对象控制器绑定到Var (模型键路径指向Var
  • FieldB也绑定到Var (拖把设置为Var ),但也有Value Transformer定义。
  • 所以这工作正常。 如果我在FieldA输入某些FieldAFieldB会被更新,如果我在FieldB输入某些FieldBFieldA会相应地更新。

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

  • 定义validateVar
  • Tick在FieldA立即在IB上FieldA
  • 到现在为止还挺好。 如果我在FieldA输入垃圾, validateVar返回NO并且我收到一个很好的错误消息。

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

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

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

    有没有办法做一些像validateFieldB

    PS。 validateVar被称为与反向转化价值FieldB ,因此有效地让FieldB转化为FieldA值,然后FieldA调用验证功能。

    PPS。 OS X Lion。 XCode 4.1。

    链接地址: http://www.djcxy.com/p/85269.html

    上一篇: How do I validate value of a reverse transform input field in Cocoa?

    下一篇: NSUserDefaultsController keys return nil