[iOS7] UITextField を2回タッチしたときのIBAction

投稿者: | 2013 年 9 月 29 日

App_Shutsugeki_v22_TextField

先日の症状の亀デバッグ中。
出撃カウント v2.2: iOS7での不具合


UITextFieldを3つ配置して、コード上からは上のようなピッカー表示処理するメソッドを接続しているんだけども。。。

こいつがiOS7になってから、1度目タッチしたときは呼ばれるのが、同じTextFieldを2度めタッチしたときに何故か呼ばれない。
呼ばれずに、数値キーボードが表示されてしまう
というのが原因なのでした。
なんなのかは謎。
元々の設定がよろしくないのか、SDKのバグなのか。要調査。

UITextFieldのdelegate, textFieldShouldBeginEditing は確実に呼ばれるようなので、ひとまずの回避策としてこいつから自前メソッドを呼ぶように。

数値セット操作時の問題はこれでいいんだけども、他にも見た目上の問題あり。
・iOS7からステータスバーが透過になったせいで設定アイコンが電池マークに被ってる
・「出撃」ボタンの枠が消えて字だけになったのがなんかヘン

この辺も合わせてチクチク直してバージョンアップする予定。

カテゴリー: iOS

[iOS7] UITextField を2回タッチしたときのIBAction」への2件のフィードバック

  1. KyasuSoft

    TextFieldで独自のキーボード使用ということだと思いますが、Sadoruさんの方法ですと標準のキーボードの上にPickerを出している感じがします。なので、iOSの挙動が変わった?ところで影響を受けてしまったのではないでしょうか。
    独自のキーボードを使用する場合は以下のようにTextViewのinputViewに独自キーボードのviewを設定します。

    UITextFiled *myTextField; // 対象のtextField
    UIView *myInputView; // pickerもOK

    myTextFiled.inputView = myInputView;

    これでTextFiledをタップした時に標準のキーボードの代わりにmyInputViewが表示されます。
    ピントが違ってたらすみません。

  2. sadoru 投稿作成者

    KyasuSoftさん
    ありがとうございます!

    >Sadoruさんの方法ですと標準のキーボードの上にPickerを出している感じがします

    実はUIPickerViewをUIActionSheetに乗せています。
    下からにゅるっと出したかったがためにそのようにしていました。

    ”TextViewのinputViewに設定”でシンプルにできそうな気がします。
    iOS7にもなったことで、わざわざActionSheetを使ってる部分も直したいと考えていたところでした。
    ちょっと試してみます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です