キーボードの上に[次へ]、[前へ]、[完了]ボタンがあります。
多くのアプリでそれを見てきました。
特に記入するフォームがある場合。
上記のキーボードに似たものを実現したい
どうすれば入手できますか?
答えは this other post にあります。 iOSライブラリをチェックしたところ、UITextFieldの inputAccessoryView がまさにあなたが探しているものです!
お役に立てれば !
BSKeyboardControls
というクラスを作成しました。これにより、キーボードにコントロールを簡単に追加できます。クラス、手順、およびサンプルコードは ここGitHubで にあります。
このコントロールはテキストフィールドとテキストビューで機能し、iPhoneとiPadの両方に最適化されています。
-(BOOL)textFieldShouldBeginEditing: (UITextField *)textField
{
UIToolbar * keyboardToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
keyboardToolBar.barStyle = UIBarStyleDefault;
[keyboardToolBar setItems: [NSArray arrayWithObjects:
[[UIBarButtonItem alloc]initWithTitle:@"Previous" style:UIBarButtonItemStyleBordered target:self action:@selector(previousTextField)],
[[UIBarButtonItem alloc] initWithTitle:@"Next" style:UIBarButtonItemStyleBordered target:self action:@selector(nextTextField)],
[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(resignKeyboard)],
nil]];
textField.inputAccessoryView = keyboardToolBar;
}
- (void)nextTextField {
if (textField1) {
[textField1 resignFirstResponder];
[textField2 becomeFirstResponder];
}
}
-(void)previousTextField
{
if (textField2) {
[textField2 resignFirstResponder];
[textField1 becomeFirstResponder];
}
}
-(void)resignKeyboard {
[textField1 resignFirstResponder];
[textField2 resignFirstResponder];
}
基本的にこれを行うユーティリティクラスがあります。
https://github.com/kalvish21/CustomKeyboard
アイデアはとてもシンプルです。バーボタン項目のあるアクセサリツールバーを追加する必要があります。そのボタンが何をするかを定義するデリゲートがあります。
https://github.com/hackiftekhar/IQKeyboardManager
これは今まで見た中で最高のキーボードハンドラです。テキスト入力を管理する非常に優れた方法。
その機能の一部1)ZERO LINE OF CODE
2)自動的に動作します
3)UIScrollViewはもうありません
4)これ以上のサブクラスはありません
5)これ以上の手作業
6)これ以上の#imports
これは、キーボードのすぐ上に配置されるカスタムコントロールです。 UIToolbarを使用できると思います。
前と次のパスは、textFieldsのfirstResponderを通過し、Doneは再署名を行い、ツールバーを非表示にします。
キーボードアニメーションを一致させるには、 このコード またはSOをご覧ください: "iPhoneのデフォルトのキーボードアニメーションレートは?"
すべての向きでiPhone/iPadで動作し、高度にカスタマイズ可能なこの機能の実装を使用して、 リポジトリ を作成しました。
他の回答で述べたように、あなたが探しているのは inputAccessoryView
です。
このココアポッドを使用して、ここに別の方法を追加したいと思います:
ポッド ' ITextField-Navigation '
すべてのUITextField
sには、nextTextField
とpreviousTextField
の2つの追加プロパティがあります。その後、Interface BuilderでnextTextField
を接続するだけで、[前へ]、[次へ]、[完了]ボタンが自動的に追加されます。すべて機能し、コードは必要ありません。
必要に応じて、UIをカスタマイズしたり、ボタンを追加したりすることもできます。