这是交易,我有一个UITableView,我添加了一个自定义单元格,其中包含不同的元素,如UITextFields和其他具有UITextView的元素。单击文本字段并出现键盘时,我更改了UITableView的contentInset,以便用户可以看到键盘和文本字段。
问题是,当用户单击UITextView时,它似乎无法正常工作!我尝试更改内容集但没有任何反应。这是一些剪切代码。
PD:我正在做所有"注册遥控器而不是键盘出现"事情。我不会在这里添加它。
- (void)keyboardWasShown:(NSNotification*)aNotification {
NSDictionary* info = [aNotification userInfo];
self.keyboardSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
_uploadTableView.contentInset = UIEdgeInsetsMake(0, 0, _keyboardSize.height, 0); }
- (void)keyboardWillBeHidden:(NSNotification*)aNotification {
_uploadTableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0); }
答案 0 :(得分:0)
除了更改内容插入内容外,您还需要滚动到存在UITextView
的行。
在 keyboardWasShown
中_uploadTableView.contentInset = UIEdgeInsetsMake(0, 0, _keyboardSize.height, 0);
NSIndexPath *indexPathOfRowContainingTextView ;//you can get the Indexpath from indexPathForCell method of UITableView
[_uploadTableView scrollToRowAtIndexPath:indexPathOfRowContainingTextView atScrollPosition:UITableViewScrollPositionTop animated:YES];
在 keyboardWillBeHidden
中_uploadTableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);