#objective-c #cocoa-touch #delegates #cocos2d-iphone #uitextfield
#objective-c #cocoa-touch #делегаты #cocos2d-iphone #uitextfield
Вопрос:
Когда я отказываюсь от первого ответчика (UITextField- * nameField) с помощью метода фонового нажатия, он не вызывает метод делегирования. Я использую UIKit с cocos2d. Любая помощь приветствуется. Спасибо!
Вот код с методом инициализации:
CGRect frame = CGRectMake(115, 423,200, 32);
nameField = [[UITextField alloc] initWithFrame:frame];
nameField.borderStyle = UITextBorderStyleNone;
nameField.textColor = [UIColor blackColor];
nameField.textAlignment = UITextAlignmentLeft;
nameField.font = [UIFont fontWithName:@"MarkerFelt-Thin" size:24];
nameField.placeholder = @"Name";
nameField.backgroundColor = [UIColor clearColor];
nameField.autocorrectionType = UITextAutocorrectionTypeNo;
nameField.delegate = self;
nameField.keyboardType = UIKeyboardTypeDefault;
nameField.returnKeyType = UIReturnKeyDone;
[nameField isFirstResponder];
nameField.transform = CGAffineTransformMakeRotation(M_PI / 2.0);
[[[[CCDirector sharedDirector] openGLView] window] addSubview:nameField];
И вот метод делегирования, который я вызываю. Я также соответствую протоколу делегирования в файле заголовка.
-(void)textViewDidEndEditing:(UITextView *)textView{
NSLog(@"Name has been saved in NSUserDefauts");
NSUserDefaults *usrDef = [NSUserDefaults standardUserDefaults];
NSString *name = [[NSString alloc]initWithFormat:@"%@",nameField.text];
NSLog(@"%@",nameField.text);
[usrDef setObject:name forKey:@"Name"];
}
Ответ №1:
Я думаю, у вас неправильный метод делегирования. Тот, который, я думаю, вам нужен, это:
- (void)textFieldDidEndEditing:(UITextField *)textField
Комментарии:
1. Спасибо … не могу поверить, что я это упустил.