3 回答
TA贡献1859条经验 获得超6个赞
我以前遇到过这个问题。
问题:
您必须确保将分配给该视图
inputView
或inputAccessoryView
不属于任何父视图。当您从ViewController中的xib创建这些视图时,默认情况下会将它们设置为超级视图的子视图。
解决方案提示:
removeFromSuperview
在您要分配给视图的方法上使用inputView
或inputAccessoryView
TA贡献1799条经验 获得超8个赞
就在becomeFirstResponder从超级视图中删除用于输入的View 之前:
mTextField.inputView = mInputVeiw;
[mInputVeiw removeFromSuperview];
[mTextField becomeFirstResponder];
希望能帮助到你。
TA贡献1895条经验 获得超3个赞
您必须确保将分配给该视图inputView或inputAccessoryView不属于任何父视图。
由于在情节提要中创建的任何“输入视图”(因此已添加到VC中view)都不能设置为inputView或inputAccessoryView不导致崩溃,因此此错误尤其令人讨厌。
如果输入视图未添加到VC view,则输入视图将无法在Interface Builder故事板中进行可视化编辑。仅在情节提要的左窗格中可见。
如何将Xcode故事板的“模拟指标”工具栏连接到实际的IBOutlet UIToolbar?
我希望inputAccessoryView直接在情节提要中建立IB连接。这会导致崩溃。我发现的解决方案是使第二个IBOutlet连接到情节提要中的视图,然后viewDidLoad将其从超级视图中删除,然后立即分配给inputAccessoryView。不知道我是否最终会使用它。
- (void)viewDidLoad {
// ...
[self.keybordView removeFromSuperview];
self.inputAccessoryView = self.keybordView;
}
- 3 回答
- 0 关注
- 839 浏览
添加回答
举报