Ios 在UITextView中键入时出现错误的\u访问异常

Ios 在UITextView中键入时出现错误的\u访问异常,ios,exc-bad-access,Ios,Exc Bad Access,我不知道这个代码有什么问题;当我开始在UITextView中键入时,程序终止,出现exc\u Bad\u访问异常 UIView *toolbar = [[UIView alloc] initWithFrame:CGRectMake(0, 430, 320, 44)]; toolbar.backgroundColor = [UIColor lightGrayColor]; UITextView *sendTextView = [[UITextView alloc] initWithFrame:CG

我不知道这个代码有什么问题;当我开始在UITextView中键入时,程序终止,出现exc\u Bad\u访问异常

UIView *toolbar = [[UIView alloc] initWithFrame:CGRectMake(0, 430, 320, 44)];
toolbar.backgroundColor = [UIColor lightGrayColor];
UITextView *sendTextView = [[UITextView alloc] initWithFrame:CGRectMake(10, 9, 240, 26)];
sendTextView.backgroundColor = [UIColor whiteColor];
sendTextView.inputAccessoryView = toolbar;
sendTextView.layer.cornerRadius = 12.0;
[toolbar addSubview:sendTextView];
[self.view addSubview:toolbar];

上面的代码在UIViewController的viewDidLoad方法中,该方法的视图为UIScrollView。

将可编辑文本视图放在工具栏中似乎很奇怪。(当用户想要编辑它时,你会怎么做?将它移到键盘上方?我不希望工具栏移动或包含可编辑字段。)然而,如果这样做会导致EXC_坏访问,我会感到惊讶

您的问题更可能出现在键入时实际运行的代码中,例如文本视图委托方法之一。如果在那里找不到任何东西,请发布崩溃时的堆栈跟踪,并为当时实际运行的方法编写代码


更新:在您的评论中指出它之后,我看到您正在将工具栏设置为
sendTextView
的输入附件视图,并将其添加到视图控制器的视图中。我猜这里发生的是,当您开始编辑文本视图时,文本视图会将工具栏添加到键盘视图中,而无需首先将其从视图控制器的视图中删除。给定视图一次只能是一个视图层次的一部分;将其添加到视图并将其用作输入附件视图将不起作用。如果查看,您会发现用作附件的视图不是普通视图层次结构的一部分。

因为工具栏(实际上是UIView)是textView的inputAccessoryView,所以当textView激活时,它会在键盘上方移动,就像iPhone应用程序中的消息一样。对——我没注意到你们都将工具栏设置为输入附件视图,并将其添加到视图中。一个视图只能有一个父视图,它不能同时是两个视图层次结构的一部分,因此,如果要将其用作输入辅助视图,请不要将其添加为视图控制器视图的子视图。如果你想要两者,我想你需要两个工具栏。我下载了苹果的键盘附件项目,并在xcode中运行它,但当我开始在文本视图中输入时,显示相同的错误。我有一个xcode 4.2 Build 4d199奇怪——这个项目对我来说很好,既按原样工作,又在附件视图中添加了一个文本字段。天哪!问题出在iOS 4.3模拟器上。我把模拟器改成了5.0,现在可以正常工作了。谢谢你的帮助。