我不知道这段代码有什么问题;当我开始在UITextView中输入时,程序以exc_Bad_Access异常终止。
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作为视图。
答案 0 :(得分:0)
在工具栏中放置可编辑的文本视图似乎很奇怪。 (当用户想要编辑它时你会怎么做?将它移到键盘上方?我不希望工具栏移动或包含可编辑的字段。)然而,如果这样做会导致EXC_BAD_ACCESS,我会感到惊讶。
您在输入时实际运行的代码中更容易出现问题,例如其中一个文本视图委托方法。如果您在那里找不到任何内容,请在崩溃时发布堆栈跟踪以及当时实际运行的方法的代码。
更新:在评论中指出后,我看到您将工具栏设置为sendTextView
和添加的输入附件视图它到视图控制器的视图。我猜这里发生的事情是,当你开始编辑文本视图时,文本视图会将工具栏添加到键盘的视图中,而无需先从视图控制器的视图中删除它。给定视图一次只能是一个视图层次结构的一部分;将其添加到您的视图和使用它作为输入附件视图将无法正常工作。如果查看Apple's sample code for using an accessory view,您会发现用作附件的视图不是普通视图层次结构的一部分。