我有一个NSTextField和一个我试图绑定在一起的NSStepper。步进器的设置从0到100,我希望初始值为30.
对于步进器绑定,我有: value:绑定到Object Controller,controller key = selection,model key path = edgeThreshold
对于stepper属性,我有 min = 0,max = 100,increment = 1,current = 30
我已经以类似的方式设置了文本字段 bindings,value:绑定到Object Controller,controller key = selection,model key path = edgeThreshold
当我运行程序时,一切都按照我的预期运行。如果我按下步进器,文本字段会递增。如果我输入一个新值,然后点击步进器,则该值将根据我输入的值进行调整。
问题是文本字段中的初始值是空的(空),并且状态的初始值看起来是0.如果我在启动后点击步进器,则文本字段从无变为1.所以我无法弄清楚将30放在哪里,以及这种绑定的真实状态。我认为它可能在对象控制器中,所以我将其字典设置为具有键路径和值" selection.edgeThreshold"和30 ......但这也没有做任何事情。
答案 0 :(得分:0)
你真的不需要对象控制器。您可以将文本字段和步进器的值绑定到属性edgeThreshold。因此,如果在app委托中声明了该属性,则它们将绑定到App Delegate.edgethreshold。如果您在applicationWillFinishLaunching方法(self.edgethreshold = 30;)中将该属性设置为30,则文本字段将在应用程序启动时显示30,步进器也将设置为30(无论您是什么将起始值设置为IB,这将覆盖它。)
答案 1 :(得分:0)
我发现了一个YouTube视频,它几乎完全符合我的目的:
http://www.youtube.com/watch?v=ESk6YLDtGR8
我没有实例化一个对象控制器来处理绑定,而是给了我的app控制器一些属性,然后绑定到它。在app controller的-init方法中,我设置了我想要的启动值。