2

我想创建一个与 iPhone 的短信应用程序(消息)完全相同的 ChatView。我正在以编程方式执行此操作,并尝试使用键盘将 textView 向上移动。我想在 UIKeyboardWillShowNotification 调用的函数中执行此操作。你能帮我调试一下这个错误吗?

在 ChatViewController.m 中,我在 loadView 函数中为 UIKeyboardWillShowNotification 设置了一个侦听器,并将 self 设置为 textView 委托,但它崩溃了,说:由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'*** -[ChatViewController keyboardWillShow]:发送到实例的无法识别的选择器

但是我在 ChatViewController.m 中定义了keyboardWillShow 为什么找不到那个函数呢?

以下是重要文件:

http://github.com/acani/acani-chat/blob/master/Lovers/Classes/ChatViewController.h http://github.com/acani/acani-chat/blob/master/Lovers/Classes/ChatViewController.m

我注释掉了听众,这样它就不会崩溃。

随意 git clone git@github.com:acani/acani-chat.git

谢谢!

4

1 回答 1

2

您已注释掉的第 120 行和第 121 行,但我认为这并不是因为没有其他参考订阅通知,当您通过选择器时会出现问题。Objective-C 消息名称中的冒号 (:) 是名称本身的一部分。因此,您在传入的选择器中缺少一个尾随冒号。修复它,这将消除您的错误。

removeObserver:此外,您应该考虑在视图消失时进行调用(viewDidUnload)。

于 2010-07-19T04:47:26.830 回答