在uitextfield的代表中收到警告

时间:2013-06-05 06:02:08

标签: iphone objective-c ios6 uitextfield

我是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;
}

3 个答案:

答案 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>