Ios 使用UIKeyboardTypeNumberPad objective c类型隐藏键盘
在iPhone应用程序中,我有一个Ios 使用UIKeyboardTypeNumberPad objective c类型隐藏键盘,ios,iphone,objective-c,delegates,uikeyboardtype,Ios,Iphone,Objective C,Delegates,Uikeyboardtype,在iPhone应用程序中,我有一个UITextField,需要作为数字输入,因此我将键盘类型作为UIKeyboardTypeNumberPad传递。它可以工作,但没有返回或完成按钮,所以我如何才能隐藏键盘 参考代码为: textDriverAge.delegate=self; textDriverAge.keyboardType=UIKeyboardTypeNumberPad; textDriverAge.clearButtonMode = UITextFieldViewModeWhileEdi
UITextField
,需要作为数字输入,因此我将键盘类型作为UIKeyboardTypeNumberPad
传递。它可以工作,但没有返回或完成按钮,所以我如何才能隐藏键盘
参考代码为:
textDriverAge.delegate=self;
textDriverAge.keyboardType=UIKeyboardTypeNumberPad;
textDriverAge.clearButtonMode = UITextFieldViewModeWhileEditing;
[textDriverAge setReturnKeyType:UIReturnKeyDone];// UIReturnKeyNext];
textDriverAge.enablesReturnKeyAutomatically=TRUE;
我处理过UITextfield
事件,如:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if(textDriverAge == textField)
{
[textDriverAge resignFirstResponder];
//[tglDropInDropOff becomeFirstResponder];
}
}
指导我如何隐藏键盘。您需要将InputAccessoryView放入文本字段,并向其添加“完成”按钮。在这里,我制作了一个xib名称“InputAccessoryView”,并根据我的需要进行了设计。你也可以这样做
InputAccessoryView *inputAccessoryView=(InputAccessoryView *)[[[NSBundle mainBundle] loadNibNamed:@"InputAccessoryView" owner:self options:nil] objectAtIndex:0];
[inputAccessoryView.doneButton setTarget:self];
[inputAccessoryView.doneButton setAction:@selector(accessoryDoneAction:)];
[inputAccessoryView.cancelButton setTarget:self];
[inputAccessoryView.cancelButton setAction:@selector(acessoryCancelButtonAction:)];
[self.textField setInputAccessoryView:inputAccessoryView];
您可以使用两种类型
触摸法
使用此链接UIToolbar
- (void)viewDidLoad
{
[super viewDidLoad];
UIToolbar *numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
numberToolbar.items = [NSArray arrayWithObjects:
[[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelNumberPad:)],
[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad:)],
nil];
yourtextField.inputAccessoryView = numberToolbar;
}
- (IBAction)cancelNumberPad:(UITextField*)textField
{
[yourtextField resignFirstResponder];
yourtextField.text=@"";
}
- (IBAction)doneWithNumberPad:(UITextField*)textField
{
[yourtextField resignFirstResponder];
}
添加以下代码以添加numberpad上的返回按钮
- (void)viewDidLoad
{
[super viewDidLoad];
UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
numberToolbar.barStyle = UIBarStyleBlackTranslucent;
numberToolbar.items = [NSArray arrayWithObjects:
[[UIBarButtonItem alloc]initWithTitle:@"Return" style:UIBarButtonItemStyleBordered target:self action:@selector(returnNumberPad)],
nil];
[numberToolbar sizeToFit];
numberTextField.inputAccessoryView = numberToolbar;
}
-(void)returnNumberPad
{
[numberTextField resignFirstResponder];
}
试试这个…-)
创建一个带有按钮和
[textDriverAge setInputAccessoryView:toolbar]
谢谢@Anbu的帮助response@MandeepKaur祝你有快乐的一天
- (void)viewDidLoad
{
[self addTapGesture];
}
#pragma mark
#pragma mark Gesture methods
- (void) addTapGesture {
UITapGestureRecognizer *tapper = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
tapper.cancelsTouchesInView = FALSE;
[self.view addGestureRecognizer:tapper];
}
- (void)handleSingleTap:(UITapGestureRecognizer *) sender
{
[self.view endEditing:YES];
}