0

テーブルの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;
}
4

1 に答える 1

0

参考までに、「自動有効リターンキー」をオフにする必要があります

とてもシンプルに見えますが、悪魔のように隠されています。

于 2012-11-09T08:13:31.260 に答える