Saya harap kalian sudah mendapat solusi membaca semua itu. Tetapi saya menemukan solusi saya sebagai berikut. Saya berharap Anda sudah memiliki sel UITextField. Jadi pada persiapan, pertahankan saja indeks baris ke dalam tag bidang teks.
cell.textField.tag = IndexPath.row;
Buat activeTextFieldinstance UITextFielddengan lingkup global seperti di bawah ini:
@interface EditViewController (){
UITextField *activeTextField;
}
Jadi, sekarang Anda tinggal menyalin paste kode saya di akhir. Dan juga jangan lupa menambahkanUITextFieldDelegate
#pragma mark - TextField Delegation
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
activeTextField = textField;
return YES;
}
- (void)textFieldDidEndEditing:(UITextField *)textField{
activeTextField = nil;
}
Mendaftarkan keyboard notifications
#pragma mark - Keyboard Activity
- (void)registerForKeyboardNotifications
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillBeHidden:)
name:UIKeyboardWillHideNotification object:nil];
}
Menangani Keyboard Notifications:
Dipanggil ketika UIKeyboardDidShowNotificationdikirim.
- (void)keyboardWasShown:(NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
[self.tableView setContentInset:contentInsets];
[self.tableView setScrollIndicatorInsets:contentInsets];
NSIndexPath *currentRowIndex = [NSIndexPath indexPathForRow:activeTextField.tag inSection:0];
[self.tableView scrollToRowAtIndexPath:currentRowIndex atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
Disebut saat itu UIKeyboardWillHideNotification dikirim
- (void)keyboardWillBeHidden:(NSNotification*)aNotification
{
UIEdgeInsets contentInsets = UIEdgeInsetsZero;
[self.tableView setContentInset:contentInsets];
[self.tableView setScrollIndicatorInsets:contentInsets];
}
Sekarang satu hal yang tersisa, Panggil registerForKeyboardNotifications metode ke ViewDidLoadmetode sebagai berikut:
- (void)viewDidLoad {
[super viewDidLoad];
// Registering keyboard notification
[self registerForKeyboardNotifications];
// Your codes here...
}
Anda selesai, semoga Anda textFieldstidak lagi disembunyikan oleh keyboard.