2012-07-26 100 views
1

我有一个NSTextField和一个NSStepper,我试图绑定在一起。步进器设置为从0到100,我想初始值为30.初始化一个可可IB绑定

对于步进器绑定,我有: 值:绑定到对象控制器,控制器键=选择,模型关键路径= edgeThreshold

对于步进属性,我有 分钟= 0,最大值= 100,增量= 1,电流= 30

我已经得到了文本字段以类似的方式设置 绑定,值:绑定到对象控制器,控制器键=选择,型号键路径= edgeThreshold

当我运行该程序时,一切都按我所期望的那样工作。如果我打开步进器,文本字段会递增。如果我输入一个新值,然后点击步进器,该值将根据输入的值进行调整。

问题是文本字段中的初始值为空(空),并且状态的初始值似乎为0.如果在启动后点击步进器,文本字段从无变为1。所以我无法弄清楚在哪里放置这个30,以及这个绑定的状态究竟在哪里。我认为它可能在对象控制器中,所以我将它的字典设置为具有“selection.edgeThreshold”和30的键路径和值,但是这并没有做任何事情。

回答

0

你并不真的需要对象控制器。您可以将文本字段和步进器的值绑定到属性edgeThreshold。所以,如果该属性是在应用程序委托中声明的,那么它们将绑定到App Delegate.edgethreshold。如果您在applicationWillFinishLaunching方法(self.edgethreshold = 30;)中将该属性设置为30,则该文本字段将在应用程序启动时显示30,并且步进器也将设置为30(无所谓将起始值设置为IB,这将覆盖它)。

0

我发现了一个YouTube视频几乎不正是我试图做的事:

http://www.youtube.com/watch?v=ESk6YLDtGR8

而不是实例化对象控制器来处理绑定,我给我的应用程序控制器中的一些属性,然后绑定到它。在应用程序控制器的-init方法中,我设置了我想要的启动值。