不要理解Apple的takeFloatValueFrom:示例

时间:2014-10-09 20:38:08

标签: objective-c xcode macos cocoa

我不是iOS大师,但我知道足够构建应用程序。我知道并理解模式,UIKit和Objective-C。我现在正在学习Mac开发,而"Cocoa Bindings Programming Topics"的这一点让我感到难过:

  

以一个非常简单的应用程序为例,其中文本字段和滑块中的值保持同步。首先考虑一个不使用绑定的实现。 文本字段和滑块使用target-action直接相互连接,其中每个都是另一个目标,操作是takeFloatValueFrom: ,如图2所示。(如果您不明白这个,你应该阅读 Cocoa入门。)

     

     

这个例子说明了Cocoa环境的动态 - 两个用户界面对象的值保持同步而不编写任何代码,即使没有编译

(强调我的)

咦?你不需要创建网点吗?和一个类似

的IBAction
- (IBAction)takeFloatValueFrom:(id)sender {
    self.slider.floatValue = [sender floatValue];
    self.textField.floatValue = [sender floatValue];
} 

这是特定于Mac的吗?你如何在XIB中实际连接两个带有target-action的控件而不编写任何代码并锁定它们的值?

1 个答案:

答案 0 :(得分:1)

当您在Interface Builder中设置界面时,您可以指定只要它以某种方式更改,它就会向另一个对象发送消息。这个例子显示的是你可以挂钩这两个对象,这样每当滑块改变时,它会将消息takeFloatValueFrom:发送到文本字段,反之亦然。

takeFloatValueFrom:NSControl上定义的方法,文本字段和滑块都是NSControl的子类。