テーブルのDataEntryセルとしてUITextFieldが設定されており、ビューの下部に2つのタブがあります。
[テキスト]フィールドの[参照情報]にプレースホルダーテキストを設定しました。これは、ユーザーが何も入力しない場合に完全に受け入れられます。しかし
そのフィールドをクリックしてから何も入力しない場合、画面を離れない限り、実際にキーボードを閉じることはできません。
キーボードを非表示にする方法や、フィールドにテキストが入力されていない場合でも「DONE」を常に使用できるようにする方法はありますか?
クリアボタンを処理したと思います。入力したテキストをバックスペースすると、何も実行されないという却下を取得できません。
タイマーを使用してクリア/却下するのは好きではありません。これに対する答えが見つかった場合は、それを削除します。
-(BOOL)textFieldShouldClear:(UITextField *)textField
{
NSLog(@"should clear");
[NSTimer scheduledTimerWithTimeInterval:0.01
target:self selector:@selector(dismiss)
userInfo:nil repeats:NO] ;
return YES;
}
-(void)dismiss
{
[_referenceText resignFirstResponder];
}
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:
(NSRange)range replacementString:(NSString *)string
{
if(textField.text.length == 1 && string.length==0)
{
textField.text = @"";
[textField resignFirstResponder];
}
// NSLog(@"Orig - %@ New - %@", textField.text , string);
return YES;
}