いいえ、アクセサリとして使用しているツールバーがあるので、キーボードが表示されたときにのみ表示されます。私はこれを行うことによってそのビットが働いています。その作業をテストするボタン上でTextFieldをアクティブにする
@IBOutlet var toolBar: UIToolbar!
@IBOutlet weak var playerInput: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
playerInput.delegate = self
playerInput.inputAccessoryView = toolBar
}
、私はどこかのビューで、一時的なTextFieldを行い、playerInput
としてそれを接続します。しかし、それは私のデザインが最終的に求めているものではありません。私は、アクセサリーとして使用されているツールバー上にあるtextFieldを必要とし、キーボード、ツールバーを表示してフォーカスを持っているようにユーザーが触ったようにtextFieldを選択するナビゲーションバーにボタンを持っています。
私のボタンの機能@IBAction func addButton(){}
は、ユーザーがtextFieldに触れたように動作することができるので、キーボードが表示され、ツールバーが表示されますか?
編集:@IBAction
機能にplayerInput.becomeFirstResponder()
を追加すると、何も起こりません。私のiPhone 6sやiPhone Simulatorでこれを実行すると、ボタンを押すことは何もしません。ボタンが機能していることを確認するためにコンソールプリントを追加すると、ボタンが機能していることが分かります。
EDIT 2:OKですので、私は何かが起こるように非常に恐ろしい回避策を持っています。私はメインのビューに2番目のtextFieldを追加し、それを隠しました。その後、私のツールバーアクセサリビューを新しい隠しテキストフィールドに設定します。ボタンを押すと、最初のレスポンダとして隠されたtextFieldが呼び出され、実際のtextFieldを持つツールバーがアタッチされます。次に、ユーザは、実際のテキストフィールドを選択し、そのエントリを適切に保存することができる。それは今のところすべて機能しています。唯一の問題は、ユーザーがスワイプでキーボードを閉じると、ベイボードが再び表示され、スワイプしてもう一度閉じてしまうことです。
残念ながら、これを私のボタン機能に追加し、シミュレータまたはiPhone 6sで実行しても、何も起こりません。ボタンは押されて強調表示され、 'print(" Button pressed ")'を追加するとコンソールにも印刷されます。 – kingfoot
シミュレータでソフトウェアキーボードを有効にしてもよろしいですか?シミュレータ>ハードウェア>キーボード>ソフトウェアキーボードを切り替えます。 – Connor
はい。私が言ったように、シミュレータと私の実際のiPhone 6は、ボタンが押されたときに何もしません。 – kingfoot