我是iphone开发的新手。现在,我在项目中面临一个警告。而在ios 6中设置UITextfield的代表我收到了警告
"**incompatible pointer types sending 'class' to parameter of type '<uitextfielddelegate>'**"
+(UITextField*)tableLabelForText:(NSString *)txt frame:(CGRect)frm isEditable:(BOOL)isEditable
{
UITextField *txtField = [[UITextField alloc] initWithFrame:frm];
[txtField setEnabled:isEditable];
[txtField setText:txt];
[txtField setTextColor:[UIColor blackColor]];
[txtField setDelegate:self];
return txtField;
}
答案 0 :(得分:0)
您正在尝试在不知道初始化对象的类方法中分配委托。因此警告。你需要做的是setDelegate到初始化对象。
[txtField setDelegate:<MyObject>];
或者您可以作为答案之一建议将类方法更改为实例方法。
-(UITextField*)tableLabelForText:(NSString *)txt frame:(CGRect)frm isEditable:(BOOL)isEditable
答案 1 :(得分:0)
您正在使用班级方法&#34; + &#34;要返回文本字段实例,请将其更改为“实例级别方法”&#34; - &#34;。即:
-(UITextField*)tableLabelForText:(NSString *)txt frame:(CGRect)frm isEditable:(BOOL)isEditable
答案 2 :(得分:0)
如果我没错,你正在为一个NSObject类设置Delegate, 由于NSObject类没有任何视图,因此UITextFieldDelegate不会向类确认。而是使用UIView
@interface ClassName : UIView <UITextFieldDelegate>