2012-03-06 63 views
0

每当我退出一个文本框,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]; 
    } 
} 

回答

0

动作看起来不错。确保您已经链接了Interface Builder中的editingDidEnd操作。

+0

我已经链接了它 – mentorship 2012-03-06 14:51:51

0

我建议你开始在你的.h文件执行UITextFieldDelegate协议

还我会用下面的代码 - 确保你的文本字段连接到你想上进行(使用界面生成器)运行的操作

#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

这是我第一次编程,所以这段代码对我来说没什么意义。当我实施它时,出现了很多错误。 – mentorship 2012-03-06 15:05:34

相关问题