質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.85%

  • Swift

    6321questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Xcode

    3646questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Swift 2

    1322questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

TextFieldでReturnを押した時にキーボードを閉じたい。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 103

tunajpn

score 3

 前提・実現したいこと

TextFieldに文字を入力し、Returnキーを押した後、キーボードが閉じるようにしたいです。

 発生している問題・エラーメッセージ

シミュレータ上でテキストフィールドに文字を入力してReturnキーを押すと、フリーズしてしまいます。

 該当のソースコード

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var textField: UITextField!
    override func viewDidLoad() {
    super.viewDidLoad()
}

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    //Enterを押したらキーボードが閉じるようにするためのコードです。
    func textFieldShouldReturn(textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }
}

 試したこと

ネットで調べてみましたが、解決しませんでした。

 補足情報(FW/ツールのバージョンなど)

キーボードが閉じるようにするためのコードについては、https://qiita.com/kobaboy/items/d56086b92f84c586562d で紹介されているものを参照しました。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • miyabi_takatsuk

    2018/06/13 15:46

    フリーズした際に、コンソールにエラーコードとかでていませんか?そこらへんにヒントがあるような気がしますので、質問に記載をお願いします。また、参考URLではコードのみで、TextFieldを生成していますが、質問者さんは、ストーリーボードのTextFieldに対して処理を行なっているので、そこらへんにも原因があるかもしれません。

    キャンセル

回答 2

checkベストアンサー

+2

引っ込むだけですが。

import UIKit

// プロトコル追加してください。
class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var textField: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()


        // miyabi_takatsukさんの回答の6番とかぶりますが,やってあるのがわかるので。
        textField.delegate = self


    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    //Enterを押したらキーボードが閉じるようにするためのコードです。
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()

        return false
    }
}

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/13 17:11

    できました!ありがとうございます!

    キャンセル

  • 2018/06/13 17:12

    がんばってください。

    キャンセル

  • 2018/06/13 17:22

    参考にした記事、一箇所だけ _ 付いてなくて、そこをコピっちゃったんですね‥。

    キャンセル

+1

僕の方でも、参考URLを参照いたしました。

まず、三点ほどありますので、
ご確認ください。

・参考URLでは、ストーリーボードを使用しない、コードのみのやり方が書いていますが、
質問者さんは、ストーリーボードを使用したやり方をしようとされているので、
参考URLの方法まんまではうまくいきません。

・参考URLにて、ストーリーボードを使用したやりかたのページが記載されております。
https://ameblo.jp/hayashidesuga/entry-11971210696.html

・上記ストーリーボードを使用したやりかたの、6番をやってみてください。
それで解決するかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/13 16:25

    回答ありがとうございます!

    デリゲートの追加を試してみましたが、やはりreturnを押してもキーボードは表示されたままですね…。Xcodeのコンソールにもエラーは見当たりませんが、先ほどまで出ていたこのエラーは出なくなりました(https://www.dropbox.com/s/of98wn5pe0hahwj/%E3%82%B9%E3%82%AF%E3%82%B7%E3%83%A7.png?dl=0)

    キャンセル

  • 2018/06/13 17:03

    returnキーを押した時の処理を、下記にしてみてください。

    func textFieldShouldReturn(textField: UITextField!) -> Bool {
    self.view.endEditing(true)
    return true
    }

    ストーリーボードを使用した時の参考URLに記載されている方法です。

    キャンセル

  • 2018/06/13 17:18

    解決しました!ありがとうございます!

    キャンセル

  • 2018/06/13 17:21

    よかったです。頑張ってください。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.85%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    キーボードが閉じない

    Main.storybodrdにUITextFieldを配置しています。これにキーボードで文字を入力した後、キーボードを閉じたいのでTextFieldと接続しているクラスをプロトコ

  • 受付中

    SwiftでTextFieldの値を読み込む

    Swiftで、Textfieldに打ち込まれた値をString型で取得し、関数に打ち込みたいのですが、自分なりのやり方ではできませんでした。方法を具体的に教えてください。(一応、自

  • 受付中

    Swift2

    Textfieldに入力された文字をTextfieldをタッチした時に消したいです 1回目Textfieldに入力する 2回目Textfieldに1回目に入力した物が残って

  • 解決済

    xcode 画面遷移後の画面でのtextfieldで入力してエンターでキーボードを引っ込めたい

    前提・実現したいこと xcodeのswiftでタスク管理アプリを作りたい 発生している問題・エラーメッセージ メニュー画面から,タスクの入力画面に映った際の入力をエンター

  • 解決済

    【Swift3】 画面遷移先TextFieldに入力した値を戻った画面のTableViewに表示でき...

    前提・実現したいこと プログラミング初心者で今swiftの勉強のために簡単なtodoアプリを作っています。変なUIかもしれませんが、下記がイメージ図です。(tableviewにt

  • 解決済

    【swift3】アプリが落ちる【アンラップ】

    乱数を使ったクイズアプリを作っています。 textFieldに0~100までの数字を入力してボタンをタップ。 2回以内にその数字が乱数と一致した場合はUILabelに”正解

  • 受付中

    Realmのlabel表記方法について

    textfield に入力したものをRealmを利用して遷移先でLabel に表示させたいのですが、方法がわかりません。 下記のようにそのページ内でボタンを押すとLabelに表示す

  • 解決済

    iOSアプリの特定Viewでキーボードを常時表示させたい。

    添付画像のTwitterのツイート投稿画面のように、あるViewが表示された時に自動的にキーボードを表示し、そのままこのView表示中は常時表示させるようにしたいのです。 どのよう

同じタグがついた質問を見る

  • Swift

    6321questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Xcode

    3646questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Swift 2

    1322questions

    Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。