TOPシステム開発> 第3回:iPod touchで動作するテキストエディタはこう作る! (3/3)

完全先取り! iPod touch開発

完全先取り! iPod touch開発

第3回:iPod touchで動作するテキストエディタはこう作る!

著者:masuidrive

公開日:2007/11/29(木)

機能を追加したEditorアプリケーションを起動

転送が終了したらホームからEditorを起動します。なお、アプリケーションの入れ替えを行った場合は再起動の必要はありません。

図のような画面が表示されるので、実際に画面上をタップしてみましょう。画面を長く触っているとルーペが表示されたり、キャレットが表示されていることから、ここにテキストを入力することができるのは分かります。

しかし、画面をタップしてもソフトウェアキーボードが表示されないため、何も入力することができません。どうやら、ソフトウェアキーボードの表示は自動で行われるのではなく、開発者が明示的に表示させる必要があるようです。

ソフトウェアキーボードはUIKeyboardクラスから扱います。このアプリケーションでは、文字を入力することが中心なので、常にソフトウェアキーボードを表示させておきます。ソフトウェアキーボードの高さは245ピクセルです。テキスト入力欄のサイズを縮めて、その下に置くようにしましょう。


図2:テキスト入力欄を追加:

リスト11:キーボードクラスを記述したeditor.mの内容

(画像をクリックすると別ウィンドウに拡大図を表示します)

リスト12:コンパイルと転送
----
$ make
$ scp -r Editor root@iPod touchのIPアドレス:/Applications/Editor.app/
Password: alpine
----

ソフトウェアキーボードを追加
図3:ソフトウェアキーボードを追加

リスト13:保存機能を実装したeditor.m

(画像をクリックすると別ウィンドウに拡大図を表示します)

リスト14:保存機能を実装したeditor.h
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <UIKit/UIApplication.h>
#import <UIKit/UITextView.h>

@interface EditorApplication : UIApplication
{
    UIView *mainView;
    UITextView *textView;
    NSString *filename;
}
@end

テキスト入力欄の高さを画面全体(screenRect.size.height)から、キーボードの高さ(keyboardSize.height)を引いた値にします。さらにUIKeyboardを定義し、その下に置くように調整します。これを表示させるために、プログラムの最後で「[mainView addSubview: keyboard];」を実行します(リスト11)。

さて、これをコンパイルしてiPod touchに転送して、実行してみましょう(リスト12)。

図3のように画面下部がソフトウェアキーボードになっているはずです。もちろん入力した値はそのまま表示されます。

しかしホームボタンを押し、一度ホーム画面に戻ってから再度Editorを起動すると、先ほど入力した文章はすべて消えてしまっています。iPod touchでは、ホームに戻るごとにアプリケーションが終了されてしまっているので、このままでは入力した内容を保持しておくことはできません。

さて最後に、メモ帳として使いやすいように、常に入力したテキストが自動的に保存されるようにします。

まずは、読み込みです。Cocoaでは、複数行を扱う文字列NSMutableStringクラスに、ファイルから読み込む関数が実装されているので、それを使い、「/var/root/memo.txt」から内容を読み込み、それをtextViewにセットします。

次は、保存です。保存はアプリが終了するときに自動的に行われるようにします。今までの処理は起動時に呼び出される、applicationDidFinishLaunching関数を上書きしていました。アプリ終了時には、applicationWillSuspend関数が呼び出されます。この中で、textViewのtextを先ほどと同じファイルに書き込みます。これを実装するとリスト13およびリスト14のようになります。

これで、メモ帳として使えるEditorアプリケーションが完成しました。公式の情報に基づいているわけではないため、このプログラムが正しい決まりごとに則った物なのかわかりません。しかし、最新のデバイスで自分の作ったアプリケーションが動くのは非常の楽しいものです。

2008年2月の公式SDKがリリースされますが、他の人より一歩先に行くために、非公式SDKでのアプリ作りを試してみてはいかがでしょうか?

次回は、iPod touch上で動作する言語を使ったプログラミングについて紹介します。


前のページ  1  2  3


masuidrive
著者プロフィール
masuidrive
最近は風呂の人と呼ばれるが、別にいつも風呂で仕事なわけじゃない。喫茶店が好きでMacBook proを持って、あちこちのお店で仕事してる。でも良い喫茶店が見つからず、マクドが多いのが残念。
http://masuidrive.jp/


INDEX
第3回:iPod touchで動作するテキストエディタはこう作る!
  iPod touch用のテキストエディタを作ろう
  Editorアプリケーションに機能を追加
機能を追加したEditorアプリケーションを起動