iOS:我有一个要求textview成为第一响应者

时间:2016-06-24 09:02:20

标签: ios objective-c keyboard uitextview

[sendTextField becomeFirstResponder]keyboard upspringself.view也会后起之时。

我有[sendTextField becomeFirstResponder] keyboard后代的要求,但是self.view没有后代吗?

编辑:为了更清楚我的问题,我添加了一张图片:

the tableview do not upspring and the textview's back upspring with keyboard popup

我的要求是: tableview没有后代和弹出textview's back的{​​{1}}后代。

编辑:对于keyboard的回答,我使用Ajay Gabani的示例在我的ipnone-5s中进行测试,我发现了这一点,tableView也{{} 1}}使用TPKeyboardAvoiding,图片会显示:

原籍状态:

The origin status

tableview upspring:

The tableview upspring

2 个答案:

答案 0 :(得分:1)

抱歉,我无法对您的问题发表评论。

对于你的情况“当[sendTextField成为FirstFirstResponder]时,键盘后代,但是self.view不是后代?”

您可以使用键盘外观管理scrollview或tableview中的文本字段。

TPKeyboardAvoiding

希望这对你有所帮助。

答案 1 :(得分:0)

如果您不想使用第三方SDK 您可以使用观察者并以编程方式管理UIView框架

- (void)viewDidLoad {

[super viewDidLoad];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardDidShowNotification object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillBeHidden:) name:UIKeyboardWillHideNotification object:nil];
}

- (void)keyboardWillShow:(NSNotification*)aNotification {
[UIView animateWithDuration:0.25 animations:^
 {
     CGRect newFrame = [customView frame];
     newFrame.origin.y -= [notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height; // Adjust your tableview position by taking keyboard height
     [tableView setFrame:newFrame];

 }completion:^(BOOL finished)
 {

 }];
}

- (void)keyboardWillBeHidden:(NSNotification*)aNotification {
[UIView animateWithDuration:0.25 animations:^
 {
     CGRect newFrame = [customView frame];
     newFrame.origin.y += [notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height; // // Adjust your tableview position
     [tableView setFrame:newFrame];

 }completion:^(BOOL finished)
 {

 }];

}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.view endEditing:YES];
}