Cocoa / Objective-C noob here。
我正在开发一个简单的应用程序,以便更多地了解iOS开发,并且很难看到我的UITextView
子类如何调用它的viewDidLoad
方法。
我将UITextView
继承为CMTextView
。
使用情节提要,窗口中有CMTextView
。
在CMTextView.m
中,我有以下内容:
#import "CMTextView.h"
@interface UITextView ()
- (id)styleString;
@end
@implementation CMTextView
- (id)styleString {
return [[super styleString] stringByAppendingString:@"; line-height: 1.1em"];
}
- (void)viewDidLoad {
NSLog(@"LOADED!"); // not doing anything...
}
我没有做任何想要添加它作为我的窗口的子视图的东西,但我认为故事板为我做了这个?
有人有任何建议吗?
答案 0 :(得分:5)
viewDidLoad
是UIViewController
而不是UIView
/ UITextView
如果您想进行任何初始化,请将其放入initWithFrame:
答案 1 :(得分:5)
如果手动初始化UITextView
,上述答案是正确的。如果从笔尖加载它们,则需要覆盖-awakeFromNib
方法。
-(void)awakeFromNib
{
[super awakeFromNib]; // Don't forget to call super
//Do more intitialization here
}
如果要处理调整大小,还要覆盖-layoutSubviews
方法
答案 2 :(得分:2)
viewDidLoad
是一种UIViewController
方法(请参阅here)。
UIKit
可确保在您实例化视图控制器的视图时在适当的时间调用viewDidLoad
,但它在UIView
UITextView
中无法发挥作用。< / p>
通常,您会在initWithFrame
时准备视图。
答案 3 :(得分:1)
视图永远不会有方法viewDidLoad。
有些方法仅限于视图控制器,viewDidLoad
就是其中之一。
视图的方法构造函数是
-(id)init;
-(id)initWithFrame;