2012-02-10 20 views
1

私はcocos2d CClayerを使用しています。textFiled shouldChangeCharactersInRange関数が機能しませんでした

私は送信名を使用するためにTextFieldクラスを提出しました。

私はいくつかのブロガーを追跡し、textFiledを表示することができましたが、shouldChangeCharactersInRangeはまったく呼び出しませんでした。

どのようにshouldChangeCharactersInRangeを呼び出しますか? (私はxibを使用しませんでした)

あなたの助けを待っています。

コードです。 (Submit.hで)

@property (nonatomic, retain) UITextField *mTextField; 
@property (readonly) NSString *enteredText; 

(Submit.mで)

-(id)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelButtonTitle okButtonTitle:(NSString *)okButtonTitle{ 
    if(self = [super initWithTitle:title message:message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)okButtonTitle, nil]) { 
     UITextField *theTextField = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 65.0, 260.0, 25.0)]; 
     [theTextField setBackgroundColor:[UIColor whiteColor]]; 
     [self addSubview:theTextField]; 
     self.mTextField = theTextField; 
     [theTextField release]; 

    } 
    return self; 
} 

- (BOOL)textField: (UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    NSUInteger newLength = [textField.text length] + [string length] - range.length; 
    return (newLength > MAXLENGTH) ? NO : YES; 
} 

(GameLayer.hで)

@property (nonatomic, strong) Submit *submitForm; 

(GameLayer.mで)

-(void) submit:(id) sender { 
    Submit *prompt = [Submit alloc]; 
    prompt = [prompt initWithTitle:@"Post Score" message:@"Enter Your Name\n\n\n" delegate:self cancelButtonTitle:@"Cancel" okButtonTitle:@"Okay"]; 
    CGAffineTransform moveDown = CGAffineTransformMakeTranslation(0,-10); 
    [prompt setTransform:moveDown]; 
    self.submitForm = prompt; 
    [submitForm show]; 
    [prompt release]; 
} 

答えて

1

UITextField Delegaを呼び出そうとしている場合TE方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange: (NSRange)range replacementString:(NSString *)string 

あなたはUITextFieldのデリゲートのプロパティを設定する必要があります。

として、

theTextField.delegate = self; 
関連する問題