初始化可可IB绑定
我有一个NSTextField和一个NSStepper,我试图绑定在一起。 步进器设置为从0到100,我想初始值为30。
对于步进器绑定,我有:值:绑定到对象控制器,控制器键=选择,模型键路径= edgeThreshold
对于stepper属性,我有min = 0,max = 100,increment = 1,current = 30
我有以类似的方式设置文本字段绑定,值:绑定到对象控制器,控制器键=选择,模型键路径= edgeThreshold
当我运行这个程序时,一切都按我的预期工作。 如果我打开步进器,文本字段会递增。 如果我输入一个新值,然后点击步进器,该值将根据输入的值进行调整。
问题是文本字段中的初始值是空(空),并且状态的初始值似乎为0.如果在启动后点击步进器,文本字段从无变为1.因此,不知道把30放在哪里,以及这个绑定的状态真正在哪里。 我认为它可能在对象控制器中,所以我将它的字典设置为具有“selection.edgeThreshold”和30的键路径和值,但是这并没有做任何事情。
你并不需要对象控制器。 您可以将文本字段和步进器的值绑定到属性edgeThreshold。 所以,如果该属性是在应用程序委托中声明的,那么它们将绑定到App Delegate.edgethreshold。 如果您在applicationWillFinishLaunching方法(self.edgethreshold = 30;)中将该属性设置为30,则该文本字段将在应用程序启动时显示30,并且步进器也将设置为30(无所谓将起始值设置为IB,这将覆盖它)。
我发现了一个YouTube视频,它几乎完全符合我想要做的事情:
http://www.youtube.com/watch?v=ESk6YLDtGR8
我没有实例化一个对象控制器来处理绑定,而是给了我的应用程序控制器一些属性,然后绑定到它。 在应用程序控制器的-init方法中,我设置了我想要的启动值。
链接地址: http://www.djcxy.com/p/85271.html上一篇: initializing a cocoa IB binding
下一篇: How do I validate value of a reverse transform input field in Cocoa?