我创建了uitextfield作为uiimageview&的子视图。 textfield和uiimageview都是scrollview的子视图。在编辑文本字段时隐藏键盘的方法是什么。 这里是我的代码,它不起作用。
{
img1=[[UIImageView alloc]initWithFrame:CGRectMake(0, 1, 320, 60)];
img1.userInteractionEnabled=YES;
NSString *imgfilepath=[[NSBundle mainBundle]pathForResource:@"123" ofType:@"png"];
UIImage *imo=[[UIImage alloc]initWithContentsOfFile:imgfilepath];
[img1 setImage:imo];
UILabel *label1;
label1=[[UILabel alloc]init];
label1.frame=CGRectMake(60, 0, 250, 30);
label1.text=@"ENTER ANNUAL INCOME";
label1.textColor=[UIColor blackColor];
label1.font=[UIFont italicSystemFontOfSize:16.0f];
label1.backgroundColor=[UIColor clearColor];
[img1 addSubview:label1];
principal = [[UITextField alloc] initWithFrame:CGRectMake(85,30, 156, 40)];
principal.backgroundColor = [UIColor clearColor];
principal.clearButtonMode = UITextFieldViewModeWhileEditing;
principal.font = [UIFont systemFontOfSize:15.0f];
principal.placeholder=@"ENTER";
[principal setKeyboardType:UIKeyboardTypeNumberPad];
//principal.textAlignment=UITextAlignmentCenter;
[img1 addSubview:principal];
[img1 respondsToSelector:[principal resignFirstResponder]];
[scrollview addSubview:img1];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[principal resignFirstResponder];
}
答案 0 :(得分:1)
[img1 respondsToSelector:[principal resignFirstResponder]];
首先,respondsToSelector
会返回BOOL
,您可以使用它来确定是否可以调用选择器。这不是void
方法,您似乎误解了这一点。
其次,UIImageView
不响应resignFirstResponder
。
第三,你正在“传递”void
到respondsToSelector:
,我很惊讶编译?
最终您要做的是在resignFirstResponder
上致电UITextField
,这可以通过致电[principal resignFirstResponder]
来实现。
但是,解除键盘的最简单方法之一就是调用[self.view endEditing:YES]
,这被描述为......
使视图(或其中一个嵌入的文本字段)重新签署第一个响应者状态。