スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--/--(--) | スポンサー広告 | トラックバック(-) | コメント(-)

XcodeでHelloWorld 【5】

XcodeでHelloWorld 【4】】の続きです

こんばんは、ちっち♀です。
11月ですね。肌寒し、すっかり紅葉の季節になりましたね。
MAC買ってから3ヶ月が経過しましたが・・・いやはや中々進まぬモノですねorz
今年中にはなんらかのアプリ公開まで至りたいものですが・・・はたして(--;)

さて、そんな事もこぼしつつ。
今日も今日とてお馴染みHelloWorldさんの作成に勤しみたいと思います。
前回、晴れてメインコードの搭載に成功した我がHelloWorldですが、
名前入力の後にキーボードが引っ込まなく、Helloのボタンが押せないという
元も子もない不便がおきてしまいましたので

今回はテキストフィールドのキーボードを、
文字入力の後に片付ける為の方法をみていきたいと思います。
ではでは。HelloWorld第五回、「デリゲートの謎!キーボード収集のメソッドとは?」
はじまるよー\(^o^)/ポンポンポンポンッポン

【テキストフィールドのデリゲート接続を作成する】

さぁ、イキナリ出て来ました、謎のデリゲートです。
デリゲート接続を作成する・・・って、一体どういう事??

まずはデリゲートとは一体どういうものなのか。
そこからお勉強をしていきたいところですが・・・と、その前に。
今回キーボードを引っ込ませるために何故、デリゲートが必要なのか。
一体デリゲートとは何の為の物なのか?と言う所からみてみますと。

入力枠に名前を入力した後、キーボードをしまう動きをプログラムする為には
まず、いつ名前の入力が終了したのか、
その瞬間をプログラム側に認識させる必要があるらしく。
それをするために必要になってくるのがこの、デリゲートなのだそうです。

つまりデリゲートとは、一つの動作が終わった事を
何かに知らせる働きを持っているもの、と言う事なんですね。
詳しくは「アプリの情報や機能などを変わりに受け持つ、請負人」
なるものらしいのですが、これを使用する事により
ある動きを引き金に別の動きを作動する事が出来たり、
必要なデータを色んな場面で引き出してこれたりと
さまざまな事が出来る様になるのだそうです。
これはいずれ使いこなす必要がありそうだ・・・!

んでは早速、今回のHelloWorldにもこのデリゲートとやらを搭載してみます。
まずはテキストフィールドのデリゲート接続の作成です。
デリゲートを設定したい対象のテキストフィールドと、
ViewControllerの下にある黒いエリアの中の丸いオレンジのアイコンとを
線でにょーんと繋ぎます。アレ・・・?これ何か覚えがある!

クリックで原寸大

やっぱりか!以前ボタンとhの画面を繋いだ時と同じですね(^^)
MACさんのキーボードの左側にある、Controlボタンを押しながら
名前の入力枠をクリック、下のアイコンまでそのままドラッグします。
にょ~ん。

クリックで原寸大

線の先が繋がると、黒い吹き出しが出てくるので
Outlet下のDelegateを選択。丸アイコンがチカチカしたらOK。
これにて「テキストフィールドのデリゲート接続を作成」は完了です。ヤッタネ!

【デリゲート機能の実装】

さて、お次は今さっき接続したデリゲートを実際に使う為の準備をします。
お馴染みhの画面を使いますので、ナビゲータエリアのファイルをクリック、
真ん中のエディターエリアに開きます。

クリックで原寸大

@interface HelloWorldViewController: UIViewController
の文の横に、UITextFieldDelegateの一文を、<>で囲んで追加します。

クリックで原寸大

こんな感じでしょうか。
これで、先ほど作成したデリゲートをプログラム内で
使う事が出来るようになったのだそうです。準備完了ですね。
あとは実際にデリゲートの機能を使う為の、コードを搭載しましょう。

クリックで原寸大

mの画面を使いますので、エディターエリアに開きます。
前回頑張って(´▽`笑)書いたchangeGreeting:メソッドの下、
@endの上に、次のコード文を書き込みます。

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
if (theTextField == self.textField) {
[theTextField resignFirstResponder];
}
return YES;
}


・・・わぁ(~∇~;)
これまた訳のわからん長い暗号コードが出てきたぞーっと
い・・・いやいや落ち着こう。まずは深呼吸。
ゆっくりチュートリアルさんを読んで解読していけばきっと大丈夫!

結局、このコードは一体どう言う事なんだい?と言いますと、
入力枠、テイストフィールドの優先度(?)を下げる為のものなのだそうです。

元々テキストフィールドには、優先順位(自己解釈ですが)が一番高いと
自動でキーボードが出る機能が最初から備わっているらしいのですが、
つまりこのコードは、その順位を下げる事によって、
強制的にキーボードを引っ込ませてしまおう、と言うコードなのだそう。
なんでも、直接キーボードにプログラムで指令を出す事は
出来ないそうで、こういった手法をとっているのだとか何とか・・・

うーん・・・難しいですね。こう言った手法のアレコレは
プログラミングの基本を習得しないと理解できなさそうですが

テキストフィールドに関しては、こういう事ですね。
名前を入力しようとタップされたところで
自分を最優先だと認識し、キーボードを出現させるけど、
入力をし終わっても、ずっと自分が一番だと思い込んでしまうような子なので。
そこで、この上の暗号コードを使って、「もうアナタのお役目は終わったのよ」と
教えてあげようと。それにより、キーボードも引っ込むと。
どうやらそういう事みたいです。何だこれテキストフィールドって天然でカワイイ(笑)

そんな訳で、早速この可愛らしい子に引き下がるタイミングを教えてあげるべく
上の暗号を打ち込んでいきましょう。
えっと・・・changeGreeting:の下、 @endの上に、ですね。

クリックで原寸大

でけたよ先生。こんな感じでええのんかしら
これでテキストフィールドちゃんはきちんと自重してくれるハズ(笑)
はたしてアプリはちゃんと作動してくれるのか。
然らばシミュレータでテスト起動してみましょうか。

クリックで原寸大

おぉ!キーボードが引っ込んでくれました!
写真じゃちと分かりにくいですが(笑)ちゃんと改行ボタンで引っ込んでくれたよ!
テキストフィールドちゃんが空気読んでくれるようになって、おばさん嬉しい!

ようやくキーボードが引っ込んでくれましたので、
Helloのボタンが押せるようになりました。
前回は試せなかったこのボタンですが、これではたしてLableさんは
ちゃんと名前を表示し、挨拶を返してくれるのでしょうか。

押してみたいと思います。ドキドキ(; ・`ω・´)

クリックで原寸大

おっOK・・・おー・・・?
ちょっとLableのサイズが大きすぎたみたいですね(笑)
文字が画面に入りきらず、「・・・」と省略されてしまいました。

とりあえず、搭載したメインコードは無事機能しているみたいです。
はー、よかったー!て言うか、ビックリしたぁ(^^;)=3
なんらかのエラーかと思って一瞬ビクっとしたよ!
文字の大きさを修正し、もう一度Helloボタンにトライしてみます。

クリックで原寸大

で、でけた・・・完璧じゃあないかあ
これでやっと、やっとHelloWorld完成かー!?

クリックで原寸大

名前を変えてもう一度トライ。
うんうん、完全に思う通りに動いてくれております・・・!!
どうでもいいけど佐藤って誰やねん。
いや、ほら、日本一多い姓だと言うし、ね!

最後に。

クリックで原寸大

世界にこんにちはー!

いやー、もうパーフェクトですね。
これにてHelloWorld完全に完成です ワーイ!

長かったなぁ・・・
何も分からず、チュートリアルの言う通りに作っただけのアプリですが、
初めて自分で作ったモノとなると・・・っ、やっぱり感動しますね!
是非自分のiPhoneに入れて遊んでみたいものですが、
それにはお金がかかるのよね・・・んもう、アップルさんったらなんて鬼畜!

しかし、今回HelloWorldを作ってみて思いましたが、
いくらXcodeさんが初心者に親切とは言えど
やはりプログラムの知識がゼロのままでは
何も満足に作る事は出来ないんですね・・・
これじゃあオリジナルアプリを作るなんて夢のまた夢・・・!

ここは少し、言語のお勉強をした方がいいみたいです。
せめて基本や概念など、大体の仕組みだけでも理解したいっ・・・!
XcodeさんはObjective-Cと言う名のプログラム言語を使っているらしいので、
その土台となってますC言語のお勉強から始めたいと思います。

うん。今からでも遅くない!!私はやったるでー。
そんな訳で、次回からはC言語でプログラミングのお勉強に入りたいと思います。
HelloWorldの完成までお付き合い下さった方々、
こんな長々とした記事記事を、最後までお読みくださり
本当にありがとうございましたm(_ _)m

みなさんにも、HelloWorldー★

2013/11/06(水) | HelloWorld | トラックバック(0) | コメント(2)

«  |  HOME  |  »

ウェスカー

『ナイス!』

こんばんは。

毎回素晴らしい記事で感心させらます。

ホント文章上手ですね(^.^)

私もこれくらい文章上手だったら、ホームページ作るの楽なんですがね・・・(/--)/

これだけの記事を、無料ブログで公開してるのが、凄く勿体ない気がします。

2013/11/07(木) 01:23:55 | URL | [ 編集]

ちっち♀

『わぁ・・・!』

>ウェスカーさん
ご訪問、有難うございます(*^^*)!
勿体無いお言葉・・・とんでもないです、お恥ずかしい///
いかにせん一記事書くのに時間がかかりすぎて
どんどん更新がおっ付かなくなってきt・・・(苦笑)
いかんですね、精進致します( ̄  ̄;ゞ

お忙しい中ご観覧下さって嬉しかったです(*´ω`*)
有難う御座いましたー!

2013/11/07(木) 20:57:27 | URL | [ 編集]

コメントの投稿














管理者にだけ表示を許可する

トラックバック

トラックバックURL
http://iphonedenaishoku.blog.fc2.com/tb.php/18-5b68ab5c
 |  HOME  | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。