Почему мой класс не называется? - PullRequest
0 голосов
/ 06 марта 2012

Каждый раз, когда я выхожу из текстового поля, должен появиться UIActionsheet, а также сохранить некоторую информацию. когда я покидаю текстовое поле, программа завершает работу, и консоль говорит, что вызван недопустимый класс. Почему этот код не работает?

- (IBAction)classFieldDoneEditing:(id)sender

- (IBAction)classFieldDoneEditing:(id)sender 
                  withActionSheet:(UIActionSheet *)typeSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    self.indicatedClass = classField.text;
    NSString *greeting = [[NSString alloc] 
                          initWithFormat:@"%@", indicatedClass];
    labelClassTitle.text = greeting;
    labelClassTitle.hidden = NO;
    [greeting release];
    [sender resignFirstResponder];

    typeSheet = [[UIActionSheet alloc]
                                initWithTitle:@"Class types"delegate:self
                                cancelButtonTitle:nil
                                destructiveButtonTitle:nil
                                otherButtonTitles:@"Core Class", @"Elective", nil];
    [typeSheet showInView:self.view];
    [typeSheet release];

    if (buttonIndex == 0) {
        self.indicatedClass = classField.text;
        NSString *indicatedString = indicatedClass;
        NSString *greeting = [[NSString alloc]       
                              initWithFormat:@"%@ meets 6 times per rotation",     indicatedString];
        labelClassTitle.text = greeting;
        labelClassTitle.hidden = NO;
        [greeting release];
        [indicatedClass release];
    }

    else if (buttonIndex == 1) {
        self.indicatedClass = classField.text;
        NSString *indicatedString = indicatedClass;
        NSString *greeting = [[NSString alloc] 
                              initWithFormat:@"%@ meets 3 times per rotation", indicatedString];
        labelClassTitle.text = greeting;
        labelClassTitle.hidden = NO;
        [greeting release];
        [indicatedClass release];
    } 
}

Ответы [ 2 ]

0 голосов
/ 06 марта 2012

Я предлагаю вам начать с реализации протокола UITextFieldDelegate в вашем H-файле

также я бы использовал следующий код - Убедитесь, что ваш textField подключен к действию, которое вы хотите выполнить (используя Interface Builder)

#pragma mark -
#pragma mark Text Field Delegate
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    if ([textField canResignFirstResponder]) {
        [textField resignFirstResponder];
    }

    return YES;
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
    // add your method here

    return YES;
}
- (void)textFieldDidEndEditing:(UITextField *)textField{

}
0 голосов
/ 06 марта 2012

Действие выглядит отлично. Убедитесь, что вы связали действие editDidEnd в Интерфейсном Разработчике.

...