ログインIDとパスワード用に2つのテキストフィールドがあります。ユーザーが電子メール ID をタップすると、キーボードの種類は電子メールになり、パスワードはデフォルトになります。両方のキーボードのボタンを押して、キーボードを閉じます。私がやろうとしているのは、ユーザーがIDとパスワードの両方を入力したら、DONEボタンを「LOGIN」に変更し、セレクターメソッドを実行してログインできるようにすることです。
これは実行可能ですか?
ありがとう
標準の iOS キーボードを使用している場合、利用可能な唯一のリターン キー タイプは
typedef enum {
UIReturnKeyDefault, // “Return”
UIReturnKeyGo, // “Go”
UIReturnKeyGoogle, // “Google”.
UIReturnKeyJoin, // “Join”.
UIReturnKeyNext, // “Next”.
UIReturnKeyRoute, // “Route”.
UIReturnKeySearch, // “Search”.
UIReturnKeySend, // “Send”.
UIReturnKeyYahoo, // “Yahoo”.
UIReturnKeyDone, // “Done”
UIReturnKeyEmergencyCall, // "Emergency Call”.
} UIReturnKeyType;
キーボードのキー変更を検出するには、 name:UITextFieldTextDidChangeNotification に登録できます。あなたのテキストフィールドがemailTextFieldとpasswordTextFieldであるとしましょう。
最初に通知を登録し、テキスト入力を検出します
// emailTextField
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(check)
name:UITextFieldTextDidChangeNotification
object:emailTextField];
// passwordTextField
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(check)
name:UITextFieldTextDidChangeNotification
object:passwordTextField];
- (void)check {
if ([emailTextField.text length] > 0 && [passwordTextField.text length] > 0) {
// Set the return key here, e.g:
emailTextField.returnKeyType = UIReturnKeyGo;
passwordTextField.returnKeyType = UIReturnKeyGo;
}
else {
// Set the return key here, e.g:
emailTextField.returnKeyType = UIReturnKeyNext;
passwordTextField.returnKeyType = UIReturnKeyNext;
}
}
Return キーがタップされると、textfield デリゲートが呼び出されます。次のようなことができます。
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
// You can perform selector here, probably after checking if both of the textfields already filled out. E.g:
if ([emailTextField.text length] > 0 && [passwordTextField.text length] > 0) {
[self performSelector:@selector(login)];
}
return YES;
}
UITextInputTraits
プロトコルは以下を定義しますUIReturnKeyType
-
typedef enum {
UIReturnKeyDefault,
UIReturnKeyGo,
UIReturnKeyGoogle,
UIReturnKeyJoin,
UIReturnKeyNext,
UIReturnKeyRoute,
UIReturnKeySearch,
UIReturnKeySend,
UIReturnKeyYahoo,
UIReturnKeyDone,
UIReturnKeyEmergencyCall,
} UIReturnKeyType;
カスタムボタンが必要な特定の目的のために、次のチュートリアルを確認できます - http://mhasantanim.wordpress.com/tutorial/iphone/customize-done-button/
また、InterfaceBuilder を使用する場合は、UITextField を選択し、属性インスペクターで [Return Key] ドロップダウン ボックスの値を変更できます。