gpt4 book ai didi

ios - InputAccessoryView 覆盖底栏

转载 作者:可可西里 更新时间:2023-11-01 06:13:56 24 4
gpt4 key购买 nike

知道如何让 inputAccessoryView 锚定到标签栏而不是屏幕底部吗?

我创建了一个 UIViewController 并覆盖了以下方法:

-(BOOL)canBecomeFirstResponder {
return YES;
}

-(UIView *)inputAccessoryView {

CGRect frame = CGRectMake(0, 0, self.view.frame.size.width, 44);

self.keyboardInputAccessoryView =[[BRKeyboardInputBarView alloc] initWithFrame:frame leftButtonTitle:@"Left" andRightButtonTitle:@"Send"];
[self.keyboardInputAccessoryView setDelegate:self];
[self.keyboardInputAccessoryView setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.keyboardInputAccessoryView removeFromSuperview];

return self.keyboardInputAccessoryView;
}

View controller with inputAccessoryView covering the tab bar

从外观上看, View Controller 将 View 添加到窗口而不是当前 View Controller View ,这可以解释其定位。但是,如果我删除该行:

[self.keyboardInputAccessoryView removeFromSuperview];

当我点击附件 View 的 TextView 时发生崩溃:

The view hierarchy is not prepared for the constraint:<NSLayoutConstraint:0x7fa0c2ca5f80 BRKeyboardInputBarView:0x7fa0c2d6fad0.bottom == UIInputSetContainerView:0x7fa0c295a2c0.bottom>

所以我想我想问的是添加键盘附件 View 的正确方法是什么,这样它就可以很好地与自动布局配合使用并避免崩溃,而且还能将自身锚定到 View 而不是窗口?

最佳答案

您所看到的是正确的行为。

您看到的结果是因为 UIViewControllerUIResponder 的子类。通过覆盖 inputAccessoryView 并返回一个 View 实例,UIViewController 将负责将该 View 放置在屏幕底部,并在键盘出现或消失时适本地为其设置动画。

如果您想在键盘顶部添加此栏,则需要将 textField/textView 的属性 inputAccessoryView 设置为您的自定义 View 。

关于ios - InputAccessoryView 覆盖底栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34857896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com