Objective c 以编程方式取消带有委托的文本字段键盘
我有一个具有以下功能的viewController:Objective c 以编程方式取消带有委托的文本字段键盘,objective-c,uiviewcontroller,uitextfield,Objective C,Uiviewcontroller,Uitextfield,我有一个具有以下功能的viewController: @接口RootViewController:UIViewController{ 然后,我在viewController.m中以编程方式添加了一个文本字段,如下所示: UITextField*textFieldRounded=[[UITextField alloc] initWithFrame:frame]; textFieldRounded.delegate = self; 在相同的.m中,我尝试了所有这些: - (void)textFie
@接口RootViewController:UIViewController{
然后,我在viewController.m中以编程方式添加了一个文本字段,如下所示:
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子视图中的文本字段时,键盘显示良好。但按“完成”按钮没有任何作用。
NSLog
语句从未出现,因此这些方法从未被调用。有什么想法吗?我可能只是刚刚提出了这个问题,但我所做的是将一个点击手势识别器对象附加到视图中,创建了一个名为clear keyboard:的实例方法,并在函数中放入[WhateVeridithatOpenedTheKeyboard resignFirstResponder];就是这样。也许你问了一些完全不同的问题,但我想我会尽力帮你:)将.h文件中的UITextField声明为带有属性的IBOutlet,并在.m文件中合成它。使用此委托方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
将此委托方法添加到您的代码中,然后再次运行您的应用程序。即使没有界面生成器,也要使用IBOutlet?是的,如果没有界面生成器,您应该这样做。检查此链接IBOutlet是无意义的。如果您没有使用IB,它只是一个标志,以便IB可以选择它可以映射到的属性,但使用属性可能是一个解决方案t谢谢,我也在其他地方看过你的推荐。值得一试。@andrewx你看过我的推荐吗?我的意思是我看过你在这里提到的其他地方推荐的技术,但不太可能是你推荐的。