初めてのUITextView!

昨日まではView, ViewControllerを使って
iPhoneでInterface Builderに頼らずに開発する方法を模索してきました。

あんまりあわてず、こつこつ進めます。
今回はUITextViewを使って、WEBサイトのHTMLを表示してみます。

SourceReaderという名前で「Windows-Based Application」で作成します。

そこでできたプロジェクト内のフォルダ「Classes」を選択し

「ファイル」→「新規ファイル」→「UIviewController subClass」を選択し、SourceReaderViewControllerと名前を付けて保存します。

Interface Builderと分離は
Interface Buiderとの関係を断ち切る!
を参照して、実行しておいてください。

作成されたファイルに対してソースをこのように編集します。

まずはViewControllerの方から。

SourceReaderViewController.h


@interface SourceReaderViewController : UIViewController {
	UITextView *textView;
}

@end

SourceReaderViewController.m

#import "SourceReaderViewController.h"


@implementation SourceReaderViewController

- (id)init{
	self = [super init];
	if(self != nil){
		// 今回は何もしない
	}
	
	return self;
}

- (void)loadView {
	CGRect bounds = [[UIScreen mainScreen] applicationFrame];
	[super loadView];
	
        // UITextViewをインスタンス化して初期化
	textView = [[UITextView alloc] initWithFrame: bounds];
	
        // UIColorオブジェクトで青を定義する
	UIColor *myBlue = [UIColor colorWithRed:0.0 green:0.0 blue:1.0 alpha:1.0];

        // textViewに青を設定する
	textView.textColor = myBlue;
	
        // UIFontオブジェクトでフォントを定義する
	UIFont *myfixed = [UIFont fontWithName:@"Courier New" size:10.0];

        // textViewにフォントを設定する
	textView.font = myfixed;
	
        // このtextViewにタップしてもキーボードを出さないようにする
	textView.editable = NO;
	
        // URLを指定して、このWebサイトのHTMLをtextViewに表示する
	NSURL *url = [NSURL URLWithString:@"http://www.oreilly.com"];
	NSString *pageData = [NSString stringWithContentsOfURL:url];
	textView.text = pageData;
	
	self.view = textView;
}

コメントに細かく動作を書いておいたので、感じはつかめるかと思います。

さて最後にDelegateのソースです。
基本的に作成したViewControllerをインスタンス化して
windowにsubviewとして貼付けてるだけです。

SourceReaderViewController.h

#import <UIKit/UIKit.h>

@class SourceReaderViewController;

@interface SourceReaderAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
	SourceReaderViewController *viewController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet SourceReaderViewController *viewController;

@end

SourceReaderViewController.m

#import "SourceReaderAppDelegate.h"
#import "SourceReaderViewController.h"

@implementation SourceReaderAppDelegate

@synthesize window;
@synthesize viewController;

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

	CGRect screenBounds = [[UIScreen mainScreen] bounds];
	self.window = [[[UIWindow alloc] initWithFrame:screenBounds] autorelease];
	
	viewController = [[SourceReaderViewController alloc] init];
	
	[window addSubview:viewController.view];
	
    // Override point for customization after application launch
    [window makeKeyAndVisible];
}

- (void)dealloc {
	[viewController release];
    [window release];
    [super dealloc];
}

@end

これで、こんな感じの画面がでてきますね!

少しづつ流れもつかめて来ました!