簡體   English   中英

UITextFieldDelegate崩潰(exc_bad_access)

[英]UITextFieldDelegate crash (exc_bad_access)

看起來我有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設定。

錯誤截圖:

在此輸入圖像描述

請幫忙。

確保你的.h中有這個

@interface TopBar : UIViewController <UITextFieldDelegate> {

}

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

並從@interface刪除

IBOutlet UITextField * field_top;

聽起來你的field_top正在發布,而你正試圖在以后訪問它,這就是它崩潰的原因。

我找到了答案。 解決方案是使用addChildViewConroller,而不僅僅是addSubview。 希望它會對某人有所幫助......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM