应用程序与UITextViewDelegate崩溃

时间:2010-08-29 21:38:24

标签: iphone objective-c interface-builder uitextview uitextviewdelegate

我是iPhone编程和Objective-C的新手,我的UITextView遇到了一些问题。我有一个视图,其中包含文本视图作为其子视图。我创建了一个单独的类,我想成为文本视图的delgate。在我的这个委托类的标题中,我有声明:

@interface MessageTextViewDelegate : NSObject UITextViewDelegate

UITextViewDelegate附近使用尖括号。我还将接口构建器中的文本视图连接到我的委托类,我在接口构建器中将其创建为对象。但是,当我运行我的应用程序并单击文本视图时,应用程序崩溃。

当我尝试在代码中初始化文本视图委托的实例并将我的文本视图的委托设置为该实例时,会发生同样的事情。当我的应用程序中没有委托时(即它未在界面构建器中连接或未在代码中输入),应用程序将运行。我需要代理,以便在键盘出现时我可以在文本视图上执行动画调整大小。
您能否通过代码或我在Interface Builder中应该做些什么来帮助我使应用程序与代理一起工作?

@willcodejavaforfood

点击textView字段时出现以下错误消息:

  

[会议开始于2010-08-29 17:39:50 - 0400。]   将程序加载到调试器中......   GNU gdb 6.3.50-20050815(Apple版gdb-962)(2008年7月26日星期六08:14:40)   版权所有2004 Free Software Foundation,Inc。   GDB是免费软件,由GNU通用公共许可证涵盖,您就是   欢迎在某些条件下更改和/或分发它的副本。   输入“show copying”查看条件。   GDB完全没有保修。输入“show warranty”了解详情。   此GDB配置为“i386-apple-darwin”。警告:无法读取“/System/Library/Frameworks/UIKit.framework/UIKit”(未找到文件)的符号。   警告:无法从“UIKit”读取符号(尚未映射到内存中)。   警告:无法读取“/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics”(未找到文件)的符号。   警告:无法读取“CoreGraphics”中的符号(尚未映射到内存中)。   程序已加载。   sharedlibrary apply-load-rules all   附加到程序:`/ Users / vivek / Library / Application Support / iPhone Simulator / User / Applications / 86E8C2CB-3CB7-4615-BF2F-82F3B8982EB3 / TestApp.app / TestApp',过程1493。   杀   杀死目标时的错误(无论如何都要杀死):警告:函数“macosx_kill_inferior_safe”中“/SourceCache/gdb/gdb-962/src/gdb/macosx/macosx-nat-i​​nferior.c”的第1987行出错:(os / kern )失败(0x5x)   退出

调试器已退出,状态为0。

3 个答案:

答案 0 :(得分:0)

您通常会将IB中的UITextView与UITextView类型的MessageTextViewDelegate类中的属性相连接。这是在您的代码中创建以下内容:

@interface MessageTextViewDelegate

     UITextView *myTextView;

@property (nonatomic, retain) IBOutlet UITextView *myTextView;

@implementation MessageTextViewDelegate

@synthesize myTextView

然后,将IB中的文本视图对象与myTextView属性相关联。

答案 1 :(得分:0)

根据生成的错误,看起来您的项目没有正确编译应用程序。我会从“清理”所有目标开始,然后进行完整的重新编译。

答案 2 :(得分:0)

如果我正确理解你的问题,那么:

如果你有一个ViewController“A”,它有一个带有textview“B”的子视图......

要解决您的问题, 使ViewController“A”成为TextViewDelegate。然后你可以处理事情。

干杯,

Kunjal