【问题标题】:UITextFieldDelegate crash (exc_bad_access)UITextFieldDelegate 崩溃 (exc_bad_access)
【发布时间】:2014-04-01 11:45:17
【问题描述】:

我的 UITextFieldDelegate 好像有问题。

我刚刚创建了一个响应UITextFieldDelegate 协议的视图控制器,并轻松地将字段添加到 xib,然后设置委托字段...你知道的。

但是当我尝试按下该字段时(开始编辑,程序崩溃)。

当我尝试以编程方式创建字段时,也会发生同样的事情。

这里是调用栈:

这里是完整的代码:

.h

#import <UIKit/UIKit.h>

@interface TopBar : UIViewController <UITextFieldDelegate>
{
    IBOutlet UITextField * field_top;
}

.m

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    NSLog(@"textFieldShouldBeginEditing");
    textField.backgroundColor = [UIColor colorWithRed:220.0f/255.0f green:220.0f/255.0f blue:220.0f/255.0f alpha:1.0f];
    return YES;
}

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

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
    NSLog(@"textFieldShouldEndEditing");
    textField.backgroundColor = [UIColor whiteColor];
    return YES;
}

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

委托由IB设置。

错误截图:

请帮忙。

【问题讨论】:

  • 你实现了委托方法吗?如果是这样,你能告诉他们吗?
  • 请你分享你所有的代码。
  • 堆栈没有多大帮助。你能发布你的代码来显示 UITextField 的委托方法吗

标签: ios uikit uitextfield uitextfielddelegate


【解决方案1】:

确保你的 .h 中有这个

@interface TopBar : UIViewController <UITextFieldDelegate> {

}

@property (nonatomic, weak) IBOutlet UITextField *field_top;

并从@interface中删除

IBOutlet UITextField * field_top;

听起来您的 field_top 正在被释放,而您稍后尝试访问它,这就是它崩溃的原因。

【讨论】:

  • 你知道,我按照你说的做了尝试,但它仍然崩溃。搞不懂怎么回事,弄了好多次了。也许这是因为父视图在滚动视图中?...dunno =(
  • 您是如何访问 field_top 的?你在哪里使用它?什么是崩溃消息?
  • 调试器中的崩溃消息是什么?
  • 没有任何消息...或者我不知道如何查看它们。我在下面发布了屏幕截图..
  • 点击后会崩溃吗?
【解决方案2】:

我找到了答案。 解决方案是也使用 addChildViewConroller,而不仅仅是 addSubview。 希望对某人有所帮助...

【讨论】:

    猜你喜欢
    • 2013-03-24
    • 2010-11-18
    • 2013-01-07
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多