在文件中.h我有:
@protocol VVInformationTableViewControllerDelegate;
@interface VVInformationTableViewController : UITableViewController <UITextFieldDelegate, UIGestureRecognizerDelegate, UIPickerViewDataSource, UIPickerViewDelegate, UITableViewDelegate>
@property (strong, nonatomic) VVUser* currentAttendee;
@property (weak, nonatomic) id<VVInformationTableViewControllerDelegate> delegate;
在档案.m:
在viewDidLoad中:
self.tableView.delegate = self;
我有方法:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
[self dismissKeyboard];
NSLog(@"HEJ");
}
但是当我拖动我的tableView时(无论键盘是否显示),这种方法都不起作用。我找了这个问题,但我找不到。
编辑: 我在parentViewController中创建了这个(scrollViewWillBeginDragging)方法,它可以工作。但是当我在parentViewController [self.infoTableView dismissKeyboard](VVInformationTableViewController作为childViewController)中调用此方法时,它在childView中它没有工作。例如,如果我尝试使用dismissKeyboard:
- (void)dismissKeyboard {
[self.textField resignFirstResponder];
NSLog(@"%@", self.textField.text);
}
在childView中的然后NSLog中的self.textField.text很好,但是当我尝试在parentView中调用它然后它是nil时,所以这个文本字段上的resignFirstResponder不起作用。
我使用childViewController的.h中的方法dismissKeyboard制作协议,并且:
-(void)textFieldDidBeginEditing:(UITextField *)textField{
self.textField = textField;
self.tableView.scrollEnabled = NO;
}