我应该在哪种方法中设置 UITextField 的委托? [英] In which method should I set the delegate of a UITextField?

查看:58
本文介绍了我应该在哪种方法中设置 UITextField 的委托?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 viewDidLoad 或 init 方法中设置 UITextField 的委托是一种好习惯吗?我尝试在 init 方法中将委托设置为 self,但它没有调用相应的委托方法,当我将代码移动到 viewDidLoad 时,它注册为将 self 设置为委托?看来我应该可以用任何一种方法设置它,如果有人能帮我解决这个问题,我将不胜感激.

Is it good practice to be setting the delegate of a UITextField in viewDidLoad or in an init method? I tried setting the delegate as self in an init method, but it wasn't calling the corresponding delegate methods, when I moved the code into viewDidLoad, it registered as setting self as the delegate? It seems that I should be able to set it in either method, if someone can help clear this up for me it would be much appreciated.

-(id) init {
    self = [super init];
    if (self) 
        textField.delegate = self;     //this text field is an IBOutlet
        //some other code here as well
    return self;
}

-(void)viewDidLoad {
    [super viewDidLoad];
    textField.delegate = self;
}

推荐答案

如果您的文本字段是 IBOutlet 然后直到 viewDidLoad 方法被调用,您的文本字段将是 nil (因此您将委托设置为 nil 对象).当 viewDidLoad 被调用时,它的字面意思是视图已加载,所有 IBOutlets 和 IBAction 都已连接并可供您使用.

If your text field is an IBOutlet then until viewDidLoad method is called your text field will be nil (hence you set delegate to nil object). When viewDidLoad gets called it literally means that view was loaded and all IBOutlets and IBActions were connected and are at your disposal.

这篇关于我应该在哪种方法中设置 UITextField 的委托?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆