我需要很少定制的 UITextField 。
我创建了新的自定义类 CustomTextField。在 IB 中,我为每个自定义 UITextField 创建了 outlet 。我运行代码但自定义不起作用。
为了进行检查,我在自定义 UITextField 中的初始化过程 initWithFrame 上设置了断点。没有命中断点。我想必须在每个 View Controller 中添加额外的 init ,但我不确定具体是什么。
当我创建 socket 时,我想 init 将自动生成,但因为这是一个自定义类,它必须是 init 手动构造如下:
CustomTexTField *textField = [[CustomTextField alloc] initWithFrame:customFrame];
[self.view addSubView:textField];
那么我是否需要在每个 View Controller 中添加额外的 init 以及如何做到这一点?
Best Answer-推荐答案 strong>
当从 IB 或 Storyboard 初始化 View 时,initWithCoder 是使用的初始化程序,而不是 initWithFrame ,这就是没有命中断点的原因。将自定义代码放在 initWithCoder 方法中。例如:
- (id)initWithCoderNSCoder *)aDecoder{
self = [super initWithCoder:aDecoder];
if (self) {
// Put customization code here...
}
return self;
}
关于带有 socket 初始化的 iOS 自定义 UITextField,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/25179229/
|