Ios5 调用UITextField delegator时,iPhone模拟器崩溃(EXC_BAD_访问)
我的控制器里有一些文本字段 控制器扩展UITextFieldDelegate,以便它处理这些TextField的textFieldDidBeginEditing,所有这些都可以正常工作 然后我尝试从一个名为TestTextField的新类中添加一个新的textfield 我将storyboard中的自定义类更改为TestTextField,并以以下方式实现: (发生的情况是,模拟器启动,NSLog打印“init!”,然后当我按下TestTextField时,NSLog打印“begin”,然后模拟器停止,并使用EXC_BAD_访问。) TestTextField.mIos5 调用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”,然后模拟
#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吗?