如何创建或分配代理?

Coc*_*Dev 3 delegates objective-c uitextfield uikit uilabel

我如何成为代表?我有一个名为CustomSign的类.该类有一个与之关联的视图.该视图有2个元素.一个文本域和一个uilabel.我想在单击完成按钮时将文本字段数据复制到uilabel.

这是我在CustomSign.m中的代码我不知道如何使它成为委托.

-(void)textFieldDidEndEditing:(UITextField *)textField {
    [textField resignFirstResponder];
    label.text = textField.text;
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*ger 7

您需要引用CustomSign.m文件中的文本字段.这可以是您在Interface Builder中连接的插座,也可以直接存储对文本字段的引用(如果您是以编程方式创建它).

然后,调用-setDelegate:文本字段的方法将对象指定为委托:

//in CustomSign.m
- (void)awakeFromNib
{
    //assume textField is an ivar that is connected to the textfield in IB
    [textField setDelegate:self];
}
Run Code Online (Sandbox Code Playgroud)

您还可以通过控制从文本字段拖动到对象来设置Interface Builder中文本字段的委托.

请注意,你不应该打电话给-resignFirstResponder自己.

  • 你也可以使用点符号代替显式调用setter方法:`textField.delegate = self;` (3认同)