obj.delegate = self是什么意思?

时间:2011-03-04 03:32:32

标签: iphone delegates

设置文本字段的委托实际意味着什么?

例如:txtField.delegate = self

7 个答案:

答案 0 :(得分:6)

“简而言之,您正在接收来自txtField的调用。您正在将对象'self'设置为txtField的委托。”

“这意味着您的'txtField'将从自身接收事件

这两个答案基本上意味着同样的事情。但看似矛盾。但第一个对我来说更有意义。我可以看到为什么初学者会感到困惑,我一直在那里!

基本上一个是打电话的人就是接收者把它想象成厨房里的厨师叫他的助手切一些洋葱。在这种特殊情况下,txtField是厨师,“自我”是助手。 txtField命令自己“做这个,这个和这个!”无论喜欢与否,助理必须要求妻子和孩子一起喂食。 :)

答案 1 :(得分:3)

这意味着self将成为响应文本字段上的操作而进行的某些方法调用的接收者。

答案 2 :(得分:2)

简而言之,您正在接收来自文本字段的呼叫。您将对象“self”设置为textField的委托。

答案 3 :(得分:1)

这意味着你的'txtField'将从它自己接收事件(一种奇怪的例子,可能会提供更大的源代码部分?)

答案 4 :(得分:1)

委托是一种在Objective-C中广泛使用的编程模式。

基本思想是让对象将某些任务委托给另一个对象。例如,您的UITextField对象将一些任务委托给您的视图控制器。在这种情况下,您的UITextField对象将成为委派对象,视图控制器将成为UITextField对象的委托。委托对象向其委托发送某些消息,以获取必要的信息,或通知某些事件等。

答案 5 :(得分:1)

对于它的一些方法,textfield(使用委托模式的类中的任何对象)将尝试调用其他对象,以便该对象可以自定义一些textfield的行为。 textfield将尝试调用的对象称为委托。委托最初设置为nil,因此,默认情况下不会进行自定义。

如果一个类有一行代码,如:textfield.delegate = self;然后它说这个类中的这个对象想要被调用来处理textfield定义的某些textfield定义的委托方法。

答案 6 :(得分:0)

这意味着调用'textField.delegate = self'的实际类将接收来自事件的回调。这通常是一种方便的做事方式。