我創造我自己的子類是基本的UIView
與UILabel
並在它的UITextField
一個子類。我自己的子類的委託方法周圍的UITextField的委託方法包裝被撞毀我的應用程序
所以我還是想的UITextField
委託方法起作用,所以我創建了自己的協議稱爲MyLabeledInputViewDelegate
基本上包裝以這種方式圍繞UITextField
的委託方法:
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
return [self.delegate inputViewShouldReturn:self];
}
我,因爲文本字段是我自己的類的實例的屬性,我當然把它的代表是這樣的:
if (self.delegate) self.textField.delegate = self;
但不過,似乎如果我的init MyLabeledInputView
與代表小號等到nil
,由於某種原因立即崩潰。
我是否正確設定了這個值,或者是否有某些我失蹤的東西?非常感謝你!
我指定初始化是這樣的:
- (id)initWithFrame:(CGRect)frame
titleRelativeLength:(float)length
titleText:(NSString *)text
titleBackgroundColor:(UIColor *)color
titleTextColor:(UIColor *)textColor
textFieldBGColor:(UIColor *)textFieldBGColor
textFieldTextColor:(UIColor *)textFieldTextColor
delegate:(id<WRLabeledInputViewDelegate>)delegate;
實現是這樣的:
- (id)initWithFrame:(CGRect)frame titleRelativeLength:(float)length titleText:(NSString *)text titleBackgroundColor:(UIColor *)color titleTextColor:(UIColor *)textColor textFieldBGColor:(UIColor *)textFieldBGColor textFieldTextColor:(UIColor *)textFieldTextColor
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
self.titleRelativeLength = length;
self.title = text;
self.titleBackgroundColor = color;
self.titleTextColor = textColor;
self.textFieldBackgroundColor = textFieldBGColor;
self.textFieldTextColor = textFieldTextColor;
}
return self;
}
這基本上只捕獲傳入的屬性,然後我設置的UITextField的代表在layoutSubviews
到成爲我自己班的實例。
什麼是控制檯輸出? – Justin
它在我指定的初始化器上崩潰,並且說無法識別的選擇器發送給它的內存地址的某個實例 – Enzo
選擇器的名稱和實例的類是什麼。這是你如何縮小崩潰。它告訴你,你發送消息的對象沒有實現它們。 – Justin