前提・実現したいこと
iPhoneアプリで、キーボードの代わりにpickerViewが下から出てくる仕様にしていましたが、iOS12.4あたり以降、一瞬出てすぐに引っ込んでしまいます。
普通に使えるように戻したいです。
発生している問題・エラーメッセージ
エラーメッセージ等はありません。
該当のソースコード
関連しそうなところをいくつか。
swift
1//キーボードをピッカーにする 2 func keyboardSetUp() { 3 timeText.delegate = self as? UITextFieldDelegate 4 //テキストフィールドのキーボードをdatePickerにする 5 timeText.inputView = datePicker 6 //ピッカーのモードをカウントダウンタイマーに 7 datePicker.datePickerMode = UIDatePickerMode.countDownTimer 8 self.datePicker.countDownDuration = TimeInterval(self.countDownSetValue) 9 //ピッカーの値の通知先を設定。 10 datePicker .addTarget(self, 11 action: #selector(self.datePickerValueChanged), 12 for: UIControlEvents.valueChanged) 13 } 14 15//MARK: キーボードに閉じるボタンを付ける。 16 func setCloseButton() { 17 18 let keyboardDoneButtonView = UIToolbar() 19 keyboardDoneButtonView.barStyle = UIBarStyle.black 20 keyboardDoneButtonView.isTranslucent = true 21 keyboardDoneButtonView.tintColor = nil 22 keyboardDoneButtonView.sizeToFit() 23 24 let doneButton = UIBarButtonItem(title: "Close", 25 style: UIBarButtonItemStyle.done, 26 target: self, 27 action: #selector(closeKeyBoard)) 28 29 let spacer1 = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, 30 target: nil, 31 action: nil) 32 let spacer = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, 33 target: nil, 34 action: nil) 35 36 keyboardDoneButtonView .setItems([spacer,spacer1,doneButton], animated: false) 37 keyboardDoneButtonView.isUserInteractionEnabled = true 38 keyboardDoneButtonView.sizeToFit() 39 40 timeText.inputAccessoryView = keyboardDoneButtonView 41 minutesText.inputAccessoryView = keyboardDoneButtonView 42 } 43 44 45//datePickerのエラー回避のためキーボードが出たときに初期値入力の処理をする。 46 @objc func showKeyBoard(notification: Notification) { 47 print("キーボードが出た") 48 DispatchQueue.main.async { 49 self.datePicker.countDownDuration = TimeInterval(self.countDownSetValue) 50 } 51 } 52 53//キーボードを閉じる 54 @objc func closeKeyBoard() { 55 timeText.resignFirstResponder() 56 minutesText.resignFirstResponder() 57 print("キーボードを閉じた") 58 }
試したこと
上記キーボードに関連しそうなメソッドをコメントアウトするなどしてみたが、特に改善はみられず。
キーボードをピッカーでなくしても同じ、
クローズボタンを外しても変わらず。
気になった点は、起動して初回は多少表示時間が長い。(0.5秒位?)
2回目以降は視認できないほど一瞬出てきて出きらないうちに引っ込む感じ。
デバッグエリアには「キーボードが出た」は表示されるが、「キーボードを閉じた」は表示されていないのでキーボードを閉じるメソッドは呼ばれていないようです。
このアプリはSwiftとObjective-cが混在していて、Objective-cで同じ仕様のビューでも同じく一瞬で閉じてしまいます。
また、通常のテキスト入力では症状が出ないビューもあります。
Xcode5になって色々変わりすぎてて困ってます。
手がかり無さ過ぎとは思いますが思い当たることがあれば宜しくおねがいします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー