初めての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
これで、こんな感じの画面がでてきますね!
少しづつ流れもつかめて来ました!