2009-11-11 87 views
0

我一直在网上搜索很长时间,我无法让这个工作。在我的文本字段中,当我点击它,然后按完成或返回它不会消失。我已经完成了每个教程的所有步骤,但仍然无法实现。我在固件3.1.2,但无论如何,这里是我ViewController.m代码:返回关键文本字段? - iPhone SDK

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    blah.delegate = self; 
    blah.returnKeyType = UIReturnKeyDone; 

} 

- (BOOL)blahShouldReturn:(UITextField *)blah{ 

    [blah resignFirstResponder]; 
    return YES; 
} 

viewcontroller.h:

@interface BlahViewController : UIViewController <UITextFieldDelegate> { 
    IBOutlet UITextField *blah; 

} 

这些都是从文件只是切口。无论如何任何人都可以帮我吗?当我点击它,我无法摆脱键盘的...

感谢,

凯文

回答

7

我很困惑。当你按下回车按钮时,你实际上是否期待一种叫做blahShouldReturn:的方法?如果您想使用textFieldShouldReturn:委托方法,则必须将其称为textFieldShouldReturn:。您可以使用该方法提供的参数UITextField来确定哪个文本字段正在发送消息。例如:

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    if (textField == blah) { 
     [textField resignFirstResponder]; 
    } else if (textField == someOtherTextField) { 
     // Do something else 
    } 
    return YES; 
} 
2

.m文件:

- (void)viewDidLoad { 

[super viewDidLoad]; 

blah.delegate = self; 
blah.returnKeyType = UIReturnKeyDone; 

//Call hideKeyboard action when done button is clicked 
[blah addTarget:self action:@selector(hideKeyboard) forControlEvents:UIControlEventEditingDidEndOnExit]; 

} 

//Custom hide keyboard action 
- (void)hideKeyboard { 

[blah resignFirstResponder]; 

} 

.h文件中:

//Dont need delegate for this method of hiding keyboard! 
@interface BlahViewController : UIViewController { 
IBOutlet UITextField *blah; 

} 

- (void)hideKeyboard; 

@end