小编dar*_*eed的帖子

InputAccessoryView 覆盖底栏

知道如何让 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;
}
Run Code Online (Sandbox Code Playgroud)

带有 inputAccessoryView 的视图控制器覆盖标签栏

从它的外观来看,视图控制器将视图添加到窗口而不是当前视图控制器视图,这将解释其定位。但是,如果我删除该行:

[self.keyboardInputAccessoryView removeFromSuperview];
Run Code Online (Sandbox Code Playgroud)

当我点击附件视图的文本视图时发生崩溃:

The view hierarchy is not prepared for the constraint:<NSLayoutConstraint:0x7fa0c2ca5f80 BRKeyboardInputBarView:0x7fa0c2d6fad0.bottom == UIInputSetContainerView:0x7fa0c295a2c0.bottom>
Run Code Online (Sandbox Code Playgroud)

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

objective-c ios

6
推荐指数
1
解决办法
1015
查看次数

标签 统计

ios ×1

objective-c ×1