SwiftによるiOSアプリ開発基本講座

First Responderを使う

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
First Responderの概念について説明し、ユーザがテキストフィールドに入力を開始した後、プログラムからそのキーボードを隠す方法について説明します。
講師:
06:07

字幕

このレッスンでは、iOS アプリ開発のFirstResponder について説明し、キーボードの表示、非表示を切り替える方法について説明します。まずこちらのプログラムですが、テキストフィールドがあるところをクリックするとこのように下からキーボードが出てきます。このキーボードがどのように出てくるかということに関しては、この「Hardware」のメニューから「Keyboard」を使って「Toggle SoftwareKeyboard」これはコマンド+K のショートカットが割当てられていますけれども、これを使うことによって、このようにキーボードがハードウェアのキーボードが接続されていて下のソフトウェアキーボードがいらない状態と、実際にソフトウェアキーボードを使って入力が必要な状態とを切り替えることができます。今回キーボードの操作をしたいという部分はですね、まずこのように名前を入力できるようにこのアプリできていますけれども、名前を入力してボタンを押してもキーボードが消えてくれないという問題が今あります。ボタンを押したらですね、もうこれ名前を入力するという機能は不要になっていますからこのキーボードはもう見えなくなってもいいと思うんですけども、まだ表示されています。 ここで必要になってくる考え方は、FirstResponderという考え方になります。ユーザとのやり取りの優先権を持っているのがFirstResponderという考え方ですので、これですね。アプリケーションを起動したときFirstResponder は、この画面全体ということになっています。この画面の中でテキストフィールドに注目したいですとういことで、ユーザがこのテキストフィールドをタッチしたときにこのテキストフィールドがFirstResponder になってキーボードの入力が開始される。そういう考え方でアプリケーションは動いています。名前を入力してボタンを押したときにキーボードを消すにはどうすればいいかというと、もうこれテキストフィールドをファーストレスポンダでなくせばいいわけです。では実際にそれをプログラムの中でどのようにかけばいいのかといいますと、今ここに ViewController の中にですね、ボタンが押された時の操作が書かれている部分がありますが、メッセージラベルのテキストをこのようにHello 何々さんと設定したあとに、この nameField に対してresignFirstResponder()FirstResponder であることをやめてくださいというふうにメッセージを送ってやることによって、FirstResponder でなくすことができます。 それではこのように変更しましたので、実際に一度アプリケーションを実行しておきましょう。そしてこのテキストフィールドのところに名前を入力しまして、ボタンを押します。そうするとHello, Satoshi!!とこのようにラベルが更新されるのと同時に、キーボードが下の方に吸い込まれて消えたということがわかると思います。このようにFirstResponder にするFirstResponder でなくすということを制御することで、キーボードを表示したり消したりといったことを自動的に行うことができます。また同時にですね、このテキストフィールドに何かを入力した後に,画面のどこかをタッチしても入力が終わるというふうにちょっと変えてみたいと思います。プログラムの中で一番最後で構いません。ここに touchesBegan というふうに入力しまして、そしてこれをコード補完がこのように出てきますから、コード補完が出た状態でReturn キーを押してやると、この関数をですねオーバーライドしますよとかそういった情報を含めてすべて必要なコードがこのように書かれてくれますから、その中に self.view.endEditing(true)と書いてやることによってこれでもですね入力を途中で打ち切るということを表すことができます。 実際にこれでプログラムを実行してみましょう。はいここにまず Satoshi と入力しまして、画面のどこかをクリックします。これでキーボードが消えるようになりました。このように、 view 全体に対して何かのテキストを入力するようなそういう編集の処理を終了してくださいということをお願いすることでも、FirstResponder をテキストフィールドから奪うことができます。ただしこの状態でラベルが更新されていませんので、テキストを入力しながら画面のどこかがタッチされたらボタンが押されたことにするというふうにしてみたいと思います。やり方は簡単で、この touchesBegan が呼ばれた後そしてこのテキストの編集を終了した後に、ボタンが押されたことにする。それでここの sender というところはself というのを渡しておけば実行できますので、このように書いてやることによって無理やりボタンが実際にユーザによって押されたわけではないですけれどユーザによって押されたかのような動作をさせることができます。さあ、こうすることによってボタンが押されたときのこのメッセージの更新もですね行うことができますので、実際に実行してみますと、まず名前を入力します。 そして画面のどこかをタッチするとキーボードが消えると同時にボタンが押されたことになったので、このようにメッセージが更新されたとということで、アプリケーションの動作が少し実用的なアプリケーションに近づいたことがわかっていただけるかと思います。このレッスンでは、FirstResponder の考え方を説明し、キーボードの表示 非表示を切り替える方法を説明しました。

SwiftによるiOSアプリ開発基本講座

このコースではiPhoneやiPadのアプリを作ってみたい方に向けて、簡単なiOSアプリを作りながらSwiftを使ったXcodeでの開発手順をひとつずつ丁寧に解説していきます。各レッスンではiOSのフレームワークの機能を確認しながら、アウトレットやアクション、MVCモデルやDelegateといったアプリ開発に必要な知識を説明します。

5時間10分 (53 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2015年10月15日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。