skå*_*fan 5 iphone cocoa-touch delegates uitextview ios4
所以我看到了这个问题:如何将UITextView的"委托"插座连接到实现UITextViewDelegate协议的类?
我的问题类似于booboo在第二个响应中描述的内容(不是标记为答案的那个).
我有一个实现UITextViewDelegate的MyViewController.在nib的界面构建器中,在视图中我选择了TextView并将其委托分配给文件所有者(这是MyViewController).
MyViewController已实现
- (void)textViewDidBeginEditing:(UITextView *)textView
{
NSLog(@"TextView EDIT %@",textView);
}
Run Code Online (Sandbox Code Playgroud)
我每次测试我的应用程序时,只要单击TextView就会出现EXC_BAD_ACCESS崩溃.如果我删除IB中的委托链接,那么键盘弹出正常.
我还尝试在MyViewController内的textview中创建一个IBOutlet UITextView,并将TextView链接到文件所有者中的这个IBOutlet.在viewDidLoad然后我分配:
myDescriptionTextField.delegate = self;
Run Code Online (Sandbox Code Playgroud)
但是,一旦单击TextView,这也会导致EXC_BAD_ACCESS出现同样的问题.
在顶部的XCODE崩溃堆栈跟踪(我认为这是什么?)崩溃的地方说:
objc_msgSend ??
-[UIResponder becomeFirstResponder]
-[UITextView becomeFirstResponder]
-[UITextInteractionAssistant setFirstResponderIfNecessary]
Run Code Online (Sandbox Code Playgroud)
......等等?
这有帮助吗?我对这个问题很遗憾?一切看起来都很正确.
我会检查MyViewController
对象是如何创建和管理的(如何将对象保留在应用程序中).当您的UITextView
存在成为您的某个UIView
对象addSubview
的子视图(保留子视图)时,可能会在MyViewController
构建视图层次结构后从内存中释放对象本身.
myDescriptionTextField.delegate = self;
Run Code Online (Sandbox Code Playgroud)
不保留self
,因为保留代表可能会导致参考周期问题.
检查一下,如果它没有解决问题,请尝试使用NSZombieEnabled进行调试,因为它会告诉您在哪里确切地引用了无效对象.
归档时间: |
|
查看次数: |
3909 次 |
最近记录: |