我有一个复杂的问题,我正在解决越来越多的问题:-)我有一个嵌入式的tableview。如果表格更改为编辑模式,并且应编辑屏幕底部的某些文本字段,则它们将隐藏在键盘后面。
我现在是UITableView的子类,并让它使用这些通知:
- (void)registerForKeyboardNotifications
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillBeHidden:)
name:UIKeyboardWillHideNotification object:nil];
}
但现在,如果用户编辑文本字段然后跳转到另一个文本字段,我希望我的函数再次计算是否可以重置偏移量。但是,这些通知仅在键盘显示或隐藏时触发。那么如何注册文本字段开始编辑?当然我有委托方法(我在相应的视图控制器中使用它们),但我不知道这两个东西连接在哪里?我无法在表视图中注册它们(它只是不起作用..)并且将我的所有代码都放在我的viewcontroller中的表视图中是没有意义的......
答案 0 :(得分:1)
您已经将UITableView
子类化了,因此请添加一些视图控制器可用于传递消息的方法。
// CustomTableView.h
@interface CustomTableView : UITableView
- (void) textFieldDidBeginEditing:(UITextField *)textField;
或者你可以做一些看起来不像UITextFieldDelegate方法的东西:
- (void) updateOffsetsToShowRect:(CGRect)rect;
然后在视图控制器的textFieldDidBeginEditing:
实现中,您可以在自定义表视图中调用这些方法。