Ios5 调用UITextField delegator时,iPhone模拟器崩溃(EXC_BAD_访问)

Ios5 调用UITextField delegator时,iPhone模拟器崩溃(EXC_BAD_访问),ios5,uitextfield,ios-simulator,uistoryboard,uitextfielddelegate,Ios5,Uitextfield,Ios Simulator,Uistoryboard,Uitextfielddelegate,我的控制器里有一些文本字段 控制器扩展UITextFieldDelegate,以便它处理这些TextField的textFieldDidBeginEditing,所有这些都可以正常工作 然后我尝试从一个名为TestTextField的新类中添加一个新的textfield 我将storyboard中的自定义类更改为TestTextField,并以以下方式实现: (发生的情况是,模拟器启动,NSLog打印“init!”,然后当我按下TestTextField时,NSLog打印“begin”,然后模拟

我的控制器里有一些文本字段

控制器扩展UITextFieldDelegate,以便它处理这些TextField的textFieldDidBeginEditing,所有这些都可以正常工作

然后我尝试从一个名为TestTextField的新类中添加一个新的textfield

我将storyboard中的自定义类更改为TestTextField,并以以下方式实现: (发生的情况是,模拟器启动,NSLog打印“init!”,然后当我按下TestTextField时,NSLog打印“begin”,然后模拟器停止,并使用EXC_BAD_访问。)

TestTextField.m

#import "TestTextField.h"

@implementation TestTextField

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

- (id) initWithCoder:(NSCoder *) coder
{
    self = [super initWithCoder:coder];
    NSLog(@"init!");
    self.delegate = self;
    return self;
}

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
    // Drawing code
}
*/

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    NSLog(@"begin");
}

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    NSLog(@"end ");

}

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
    return YES;
}

@end
TextField.h

#import <UIKit/UIKit.h>

@interface TestTextField : UITextField <UITextFieldDelegate>

@end
#导入
@接口TestTextField:UITextField
@结束

我有完全相同的问题,这似乎只发生在iOS simulator 5上

看起来在init处设置委托会导致应用程序崩溃

只需注释
self.delegate=self
行即可删除错误


因此,我最终(不是很好,但是呃)将我的
self.delegate=self
放入了一个重载的
-(void)touchsbegind:
。这样,我确信当有人开始打字时,我的委托已经设置好了。

现在我很清楚发生了什么,因为这是很久以前的事了


我99%确定这个问题是由于将XCode中的“自定义类”值与一些不再存在的旧值保留在一起造成的。

我也遇到了同样的问题。通过调整
自动更正类型
,我最终解决了这个问题

请将文本字段设置为
autocorrectionType=UITextAutocorrectionTypeNo


希望这能解决您的问题。

您正在使用iOS simulator 4.3吗?