ログインビューでは、2つのセルを持つグループ化されたテーブルビューに電子メールとパスワードのテキストフィールドがあります。プログラムで2つのテキストフィールドを追加しました。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
_cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
_cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"Cell"];
_cell.backgroundColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:1];
if (indexPath.row == 0) {
_emailTxtFld = [[UITextField alloc]initWithFrame:CGRectMake(10, 7, 277, 34)];
_emailTxtFld.placeholder = @"E-mail";
_emailTxtFld.font = [UIFont fontWithName:@"Helvetica-Bold" size:15];
_emailTxtFld.clearsOnBeginEditing = YES;
[_emailTxtFld setDelegate:self];
[_emailTxtFld setKeyboardType:UIKeyboardTypeEmailAddress];
[_cell.contentView addSubview:_emailTxtFld];
}
if (indexPath.row == 1) {
_passwordTxtFld = [[UITextField alloc]initWithFrame:CGRectMake(10, 7, 277, 34)];
_passwordTxtFld.placeholder = @"Password";
_passwordTxtFld.font = [UIFont fontWithName:@"Helvetica-Bold" size:15];
_passwordTxtFld.secureTextEntry = YES;
[_passwordTxtFld setDelegate:self];
_passwordTxtFld.clearsOnBeginEditing = YES;
[_cell.contentView addSubview:_passwordTxtFld];
}
return _cell;
}
これはすべてスクロールビューにあります。テキストフィールドにタッチすると、キーボードが表示され、scrollviewが表示され、残りのビューをスクロールして表示できます。問題は、テキストフィールドとテーブルビュー、および入力したテキストが、それらの内部をタッチして編集すると消えてしまうことです。オートコレクトは引き続き表示されます。何かを入力してキーボードが戻った後、すべてが通常の状態に戻り、入力したテキストが表示されます。
KeyboardDidShowメソッドですべてをコメントアウトしても、テーブルビューとテキストフィールドは消えません。しかし、明らかに私はその行を維持したいと思います。
-(void)keyboardDidShow:(NSNotification *)notif
{
_logScrollView.frame = CGRectMake(0, 0, 320, 245);// This line commented out stops the problem
}
-(void)keyboardDidHide:(NSNotification *)notif
{
_logScrollView.frame = CGRectMake(0, 0, 320, 460);
}
さらにコードを提供する必要がある場合はお知らせください。ご回答ありがとうございます!