我有一个viewController:
@interface RootViewController : UIViewController <UITextFieldDelegate>{
然后我在viewController.m中以编程方式添加了一个textfield:
UITextField*textFieldRounded=[[UITextField alloc] initWithFrame:frame];
textFieldRounded.delegate = self;
在同一.m
我尝试了所有这些:
- (void)textFieldDidEndEditing:(UITextField *)textField{
[textField resignFirstResponder];
NSLog(@"returned?");
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
NSLog(@"returned?");
return YES;
}
-(BOOL)textFieldShouldEndEditing:(UITextField *)textField{
[textField resignFirstResponder];
NSLog(@"returned?");
return YES;
}
当我单击viewController的子视图中的文本字段时,键盘显示正常。但按Done什么也没做。 NSLog
语句永远不会出现,因此永远不会调用这些方法。有什么想法吗?
答案 0 :(得分:1)
我可能只是勉强有这个问题,但我所做的是将一个轻敲手势识别器对象附加到视图中,制作了一个名为clear keyboard的实例方法:,并在函数内部放置[whateverItIsThatOpenedTheKeyboard resignFirstResponder];就是这样。也许你会问一些完全不同的东西,但我想我会尽力帮助:)
答案 1 :(得分:0)
将.h文件中的UITextField声明为带有属性的IBOutlet,并将其合成为.m文件。
答案 2 :(得分:0)
使用此委托方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
将此委托方法添加到您的代码中并再次运行您的应用程序..