UITextView inputAccessoryView与iOS 8中的键盘顶部重叠
我有一个非常普通的inputAccessoryView工具栏,用于一些UITextView字段。“上一步”、“下一步”和“完成”按钮。我将它们放在UIViewController类中,并将它们分配给UITextFields,如下所示:UITextView inputAccessoryView与iOS 8中的键盘顶部重叠,ios,objective-c,iphone,ios8,inputaccessoryview,Ios,Objective C,Iphone,Ios8,Inputaccessoryview,我有一个非常普通的inputAccessoryView工具栏,用于一些UITextView字段。“上一步”、“下一步”和“完成”按钮。我将它们放在UIViewController类中,并将它们分配给UITextFields,如下所示: self.outPlayerOneTextField.inputAccessoryView = myAccessoryVc.view; CGSize rect=[view systemLayoutSizeFittingSize:CGSizeMake(0, 0)]
self.outPlayerOneTextField.inputAccessoryView = myAccessoryVc.view;
CGSize rect=[view systemLayoutSizeFittingSize:CGSizeMake(0, 0)];
view.frame=CGRectMake(0, 0, rect.width, rect.height);
view.frame={{0,0},[view systemLayoutSizeFittingSize:{0,0}]};
这在iOS 7中非常有效。对于iOS 8,它现在与键盘顶部重叠,如下所示:
有什么变化的迹象吗?或者将其包装在视图控制器中不是一件好事?我也遇到过同样的情况。对我来说,框架不是由约束自动设置的。为了修复此问题,我在设置inputAccessoryView之前手动设置了框架,如下所示:
self.outPlayerOneTextField.inputAccessoryView = myAccessoryVc.view;
CGSize rect=[view systemLayoutSizeFittingSize:CGSizeMake(0, 0)];
view.frame=CGRectMake(0, 0, rect.width, rect.height);
view.frame={{0,0},[view systemLayoutSizeFittingSize:{0,0}]};
或者如果使用ObjultC++,你可以简化它:
self.outPlayerOneTextField.inputAccessoryView = myAccessoryVc.view;
CGSize rect=[view systemLayoutSizeFittingSize:CGSizeMake(0, 0)];
view.frame=CGRectMake(0, 0, rect.width, rect.height);
view.frame={{0,0},[view systemLayoutSizeFittingSize:{0,0}]};