2

Cocoa/Objective-C 菜鸟在这里。

我正在开发一个简单的应用程序来了解更多关于 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...
}

我没有做任何花哨的事情来将它添加为我的窗口的子视图,但我认为情节提要为我做了这件事?

有人有建议吗?

4

4 回答 4

6

如果您手动初始化UITextView. 如果从笔尖加载它们,则需要覆盖该-awakeFromNib方法。

-(void)awakeFromNib
{
    [super awakeFromNib]; // Don't forget to call super

    //Do more intitialization here
}


如果你想处理调整大小也覆盖该-layoutSubviews方法

于 2013-02-12T08:47:52.357 回答
5

viewDidLoadUIViewControllernot UIView/中的一个方法UITextView

如果你想做任何初始化然后把它放进去initWithFrame:

于 2013-02-12T08:42:22.610 回答
2

viewDidLoad是一种UIViewController方法(参见此处)。

UIKit确保在您实例化视图控制器的视图时在适当的时间调用它,但它在likeviewDidLoad中没有任何作用。UIViewUITextView

通常,你会initWithFrame及时准备好你的观点。

于 2013-02-12T08:42:28.923 回答
1

视图永远不能有 viewDidLoad 方法。某些方法仅与视图控制器绑定,并且viewDidLoad是其中之一。

视图的方法构造函数是

-(id)init;
-(id)initWithFrame;
于 2013-02-12T08:46:37.947 回答