2013-06-16 2 views
0

У меня настоящая головная боль с его сегодняшним днем, и я действительно могу помочь с советом.xcode textFieldDidFinishEditing не работает

Проблема

Все в коде работает хорошо, однако я имею огромную проблему получить textFieldDidFinishEditing правильно уволить его не вызывается для того, что когда-либо причине (проб, потому что я не понимаю) У меня есть textFieldDidBeginEditing, чтобы нормально работать, и я применяю ту же логику, но она просто не работает.

Несколько вещей, которые я сделал, поля delegate для полей установлены правильно, это снова подтверждается удалением KB, текстовые поля становятся серыми, а вывод nslog - правильным (за исключением завершения редактирования).

Что нужно сделать, когда пользователь вводит значение, а затем выходит из текстового поля 1 или 2, он заполняет другое поле значением, т.е. text1 = 2, когда пользователь выходит из поля textFieldDidFinishEditing, а затем запускает код для установки текстового поля от 2 до = 2, но он не работает даже при вызове. Я знаю, что могу установить это из IB с завершенным редактированием отправленных событий, однако идентификатор скорее не будет использовать это.

Я пробовал использовать textFieldDidEndEditing - это действительно работает, но он освобождает ответчика, прежде чем я смогу передать любые значения и т. Д., Я прочитал раздел разработчика Apple для класса UITextField и считаю, что делаю это правильно (очевидно, не так, как это не работает), поэтому я в растерянности, любая помощь будет apreciated

Кодекса

Ниже копия моего кода

// 
// ViewController.m 
// didendediting 
// 
// Created by Developer on 16/06/2013. 
// Copyright (c) 2013 Mr H. All rights reserved. 
// 

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 



//Checking for edit state on each of the text fields this works fine as does what is expected 
- (void)textFieldDidBeginEditing:(UITextField *)textField 

{ 

    if (textField.tag == 0) //text 1 field 
    { 
     self.text1.backgroundColor = [UIColor lightGrayColor]; 
     self.text2.backgroundColor = [UIColor whiteColor]; 
     NSLog(@" Text 1 Became First Responder"); 
     //self.blockWidth.text=self.blockLength.text; 
    } 
    else if (textField.tag == 1) //text 2 field 
    { 
     self.text2.backgroundColor = [UIColor lightGrayColor]; 
     self.text1.backgroundColor = [UIColor whiteColor]; 
     NSLog(@" Text 2 Became First Responder"); 
    } 
} 

//use this to get rid of the KB when the user clicks anywhere on the screen - again this 
//works fins as it removes the kb from screen 
- (IBAction)hideKeyboard:(id)sender 

{ 
    [self.text1 resignFirstResponder]; 
    [self.text2 resignFirstResponder]; 
    NSLog(@"RESPONDER Released"); 
} 

//This is the area that is not working 
- (void)textFieldDidFinishEditing:(UITextField *)textField 

{ 

    if (textField.tag == 0) //text 1 field 
    { 

     NSLog(@"text 1 finished editing"); 
     self.text1.text=self.text2.text; 

    } 

    else if (textField.tag == 1) //text 2 field 
    { 

     NSLog(@"text 2 finished editing"); 
     self.text2.text=self.text1.text; 
    } 

    else 
    { 
     NSLog(@"something gone wrong"); 
    } 

} 
@end 
+2

Там нет такого понятия, как textFieldDidFinishEditing http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextFieldDelegate_Protocol /UITextFieldDelegate/UITextFieldDelegate.html –

+0

verbumdei - это правильно. Вы можете использовать метод textFieldDidEndEditing: delegate – Marco

+0

чертовски черт возьми, я понятия не имею, теперь я получил это, поэтому я попытаюсь использовать редактирование законченного конца, нечетное, то что xcode правильно компилирует, хотя я использую то, чего не существует? –

ответ

2

Вы й ESE UITextField delegates:

– textFieldShouldBeginEditing: 
– textFieldDidBeginEditing: 
– textFieldShouldEndEditing: 
– textFieldDidEndEditing: 

И я думаю, что вы ищете – textFieldDidEndEditing:

Смежные вопросы