2

我有一个 NSTextField 和一个 NSStepper ,我试图将它们绑定在一起。步进器设置为从 0 到 100,我想要一个初始值 30。

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

对于步进器属性,我有 min=0,max=100,increment=1,current=30

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

当我运行程序时,一切都按我的预期工作。如果我向上踩踏,文本字段会增加。如果我输入一个新值,然后点击步进器,该值会根据我输入的值进行调整。

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

4

2 回答 2

0

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

于 2012-07-27T00:04:42.363 回答
0

我发现了一个 youtube 视频,它几乎完全符合我的要求:

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

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

于 2012-07-27T00:05:40.950 回答