2

Cocoa/Objective-C 初心者はこちら。

私はiOS開発についてもう少し学ぶために単純なアプリに取り組んでおり、サブクラスUITextViewviewDidLoadメソッドがどのように呼び出されているかを確認するのに苦労しています。

にサブクラス化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。nib からロードする場合は、メソッドをオーバーライドする必要があります-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

viewDidLoadUIViewControllerメソッドです (ここを参照)。

UIKitは、ビュー コントローラーのビューをインスタンス化する適切なタイミングで確実に呼び出されますが、 likeviewDidLoadで果たす役割はありません。UIViewUITextView

通常、ビューはその時点で準備しますinitWithFrame

于 2013-02-12T08:42:28.923 に答える
1

ビューはメソッド viewDidLoad を持つことはできません。一部のメソッドは、viewcontroller にのみテザリングされておりviewDidLoad、その 1 つです。

ビューのメソッド コンストラクターは次のようになります。

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