16.そらのの自由研究 iPhoneアプリを作ってみよう!「UITextField」

libub
ライブブch季節外れの夏休み企画! アプリ作りは初めてどころかプログラミングもしたことのないそらのが、皆様の手助けを借りながらiPhoneアプリを作っていきます! 目指すは完成アプリをApp Storeに申請まで!果たしてそらのは夏休みの宿題を無事に終わらせることができるのか!?
【参考書籍】よくわかるiPhoneアプリ開発の教科書 著:森巧尚

プログラミング初心者だけど、iPhoneアプリを作ってみたい。

本書はそういう人のための、基本からしっかりマスターできる、iPhoneアプリ開発の入門書です。iPhoneアプリの開発ソフトには「Interface Builder」というわかりやすいツールが用意されています。これを使うと、iPhoneアプリを「見たままにデザインをして」作っていくことができます。本書では、この「Interface Builder」の使い方を中心に、iPhoneアプリの開発の方法を説明していきます。

amazon:http://amzn.to/tscoXf
(番組内ではXcode3対応版を使用しております。)

第16回 Index

UITextField:テキストの入力
①IBで設定できること
②実践
③課題
④ワンポイントアドバイス

UITextFieldとは


https://matome.naver.jp/odai/2131760377432731401/2131769046533736103
文字を入力するエリア。
webページのテキストボックスと同等だと思われます。テキストフィールドをタップすると、キーボードが出てきます。
ユーザーに文字を入力させたいときに使う。

IBでできること


https://matome.naver.jp/odai/2131760377432731401/2131765109333441303
テキストフィールドの幅調整
左右の点を引っ張るとのびます。
横にどれくらいなのか数値も表示されます。

https://matome.naver.jp/odai/2131760377432731401/2131765124133443103
インスペクタのアトリビューツで
テキストの内容などけっこう細かいところまで設定できます。
Placeholderはテキスト入力する前に出ている薄い文字を設定できるところです。

https://matome.naver.jp/odai/2131760377432731401/2131765109233441003
TextInputTraitsでキーボードの設定
Keyboardのプルダウンで、キーボードの種類を設定できます。

https://matome.naver.jp/odai/2131760377432731401/2131765109333441103
RetuneKeyのプルダウンでは、右下の部分(「決定」や「完了」などのところ)を設定することができます。

Hideo MIzuno@osanpo

Yahoo や Googleなんてキーもあるんだ(笑)。 ( #libub at wcz.jp/3BenYk )

https://matome.naver.jp/odai/2131760377432731401/2131765207133452403
キーボードの設定してみました
あれ、ビューウィンドウに出てないな。
なんでだろう。

たか@tibimini

ソミュレータまたは、実機上でしか確認できないよ。 ( #libub at wcz.jp/3BenYk )
tibimini: 間違えたシミュレータ・・・

実践

それでは実際に、「文字を入力すると、その文字を表示する」プログラムを書いてみましょう

IBでテキストフィールドとラベルをレイアウトして、Xcodeで「テキストが入力されたらラベルに文字を設定する」プログラムを書きます


https://matome.naver.jp/odai/2131760377432731401/2131763722733238203
1) ヘッダーファイルに変数とメソッド名、IBには「ラベル」をそれぞれ作ります。
変数宣言!
UILabelのmylabelという変数を作る。
お馴染ですね。
今回はプラスして、UITextFieldのmytextfieldという変数も作ります。IBActionを使って、IBで用意した部品をユーザーが操作したときに呼び出すメソッド名を作ります。
このあたりもお馴染になってきました。


https://matome.naver.jp/odai/2131760377432731401/2131764124633275603
≪コード≫
@interface ~~~ {
IBOutlet UILabel *mylabel;
//@interface{ }の中に書きます
//mylabelという変数をつくりました
IBOutlet UITextField *mytextfield;
//mytextfieldという変数をつくりました
}
-(IBAction)inputText;
//interface{ }の後ろに書きます
//IBでつくった部品をユーザーが操作したときに呼び出すメソッド名
@end

https://matome.naver.jp/odai/2131760377432731401/2131763893733256803
InterfaceBuilderでは、第11回の「IBOutlet」の項目の通りに変数とラベルを接続します。
https://matome.eternalcollegest.com/post-2131703398027843201/2131709517128284703「IBAction」もこちらの項目を参考に接続。
https://matome.eternalcollegest.com/post-2131703398027843201/2131709580328299603
今回は、「DidEndOnExit」を選びます。

それぞれ保存は忘れずに。
IBはラベルとボタンを置いた後に一度閉じると、ちゃんとXcodeと同期してくれます。


https://matome.naver.jp/odai/2131760377432731401/2131764005633266903
2) 実装ファイルにプログラムを書きます。
(プロジェクト名).mの実装ファイルに、inputTextに接続されている部品のアクションが実行されたら、mylabelのテキストにmytextfieldの文字を反映させるプログラムを書きます。

https://matome.naver.jp/odai/2131760377432731401/2131764914433409503
《コード》
@implementation
-(IBAction) inputText {
mylabel.text = mytextfield.text;
}
//@implementationの後ろに書きます
//IBでtapBtnに接続されている部品のアクションが実行されたら、mylabelにmytextfieldの文字を反映させる

https://matome.naver.jp/odai/2131760377432731401/2131764144333281303
3) ビルドして実行、iPhoenシミュレーターを開く!
テキストフィールをタップするとキーボードがあらわれました。

https://matome.naver.jp/odai/2131760377432731401/2131764152033282203
テキストフィールドに文字を入力してreturnをタップすると、ラベル(初期値がLabel)にテキストフィールドの文字が反映されました!

たこ☆すけ@takosuke_1

おおっ! ( #libub at http://t.co/8bM23DkB )

よーすけ@yosuke_04

プチ感動 ( #libub at wcz.jp/3BenYk )

番組終了後の課題 そのいち

osanpo: ラベルの一がわかりやすいように背景色を変えてみては?

注) 「一」は「位置」の誤り


https://matome.naver.jp/odai/2131760377432731401/2131764674533388103
手順の1~2は同じ
(プロジェクト名).mの実装ファイルに、mylabelの詳細を少し加えてあげます。

https://matome.naver.jp/odai/2131760377432731401/2131764908933407803

《コード》

-(void) viewDidLoad {
[super viewDidLoad];
mylabel.backgroundColor = [UIColor yellowColor];
//mylabelの背景を黄色に設定します
}


https://matome.naver.jp/odai/2131760377432731401/2131764870333403703
ビルドして実行、iPhoenシミュレーターを開く!
はい、このような感じでラベルに背景色をつけることができました!

番組終了後の課題 そのに

yosuke_04: ラベルに表示される文字を大きくするとかは出来ないんですか?


https://matome.naver.jp/odai/2131760377432731401/2131764881733405703
手順の1~2は同じ
(プロジェクト名).mの実装ファイルに、mylabelの詳細を少し加えてあげます。

https://matome.naver.jp/odai/2131760377432731401/2131764911433408003

《コード》

-(void) viewDidLoad {
[super viewDidLoad];
mylabel.font = [UIFont systemFontOfSize: 30];
//mylabelのフォントサイズを30にします
}


https://matome.naver.jp/odai/2131760377432731401/2131764917933410203
ビルドして実行、iPhoenシミュレーターを開く!
いかがでしょうか。
ほかのものより大きくなっているのわかりますでしょうか。

番組終了後の課題 そのさん

ksorano: テキスト消去ボタンのOn/Offを設定をみっつめの課題にします


https://matome.naver.jp/odai/2131760377432731401/2131764947133415003
手順の1~2は同じ
(プロジェクト名).mの実装ファイルに、mytextfieldの詳細を少し加えてあげます。

https://matome.naver.jp/odai/2131760377432731401/2131764952733416103

《コード》

-(void) viewDidLoad {
[super viewDidLoad];
mytextfield.clearButtonMode = UITextFieldViewModeWhileEditing;
//mytextfieldのクリアボタンをフォーカスが当たっている時のみ表示します
}


https://matome.naver.jp/odai/2131760377432731401/2131765034833430003
ビルドして実行、iPhoenシミュレーターを開く!
キーボードで入力すると、出てきました!
これができたときがいちばん感動しました。

ワンポイントアドバイス

Hideo MIzuno@osanpo

プルダウンすると大別して表示されます。よく使う部品は”Input&Values”にあります。 ( #libub at wcz.jp/3BenYk )
ライブラリウィンドウについて

https://matome.naver.jp/odai/2131760377432731401/2131765239733459203

https://matome.naver.jp/odai/2131760377432731401/2131765239833459303

編集後記

ちょっとずつ進んでます

番組中にある程度の手順を理解して、まとめをつくるときの課題を設定するのはいい勉強法かも知れない
まだ、「教科書の通り」や「例題のまんま」というのは抜けないけれども、ほんの少しずつ頭の回転ははやくなっているのではないだろうか

そらのプロフィール


https://matome.naver.jp/odai/2131760377432731401/2131760401632734203
そらの
鶏肉みたいなココロを耐久ガラスで守ってます。
(株)ソラノート 広報です。
プログラミングは未経験です。

そらのの自由研究 iPhoneアプリを作ってみよう! まとめ一覧

https://matome.naver.jp/odai/2131760377432731401
2011年11月16日