如何给按钮 iPhone onScreenKeyboard return 按键行为?
How to give a button iPhone onScreenKeyboard return key behaviour?
我有一个应用程序,我必须在其中实现屏幕键盘顶部的自定义快速输入建议。 Where(QuickType Suggestion Box) 右键行为就像键盘 return 类型行为一样。如果键盘 return 键是 "next" 那么建议的右键将是 "next",如果 "Done" 那么它也必须是 "Done" 以及类型操作.
当它出现时,我在键盘的顶部看到了三个按钮。但我无法弄清楚,如何使用它?
有可能用这个技巧吗?如何?
如果,还有其他方法可以做到这一点,请提出建议。
好的,所以首先你需要知道键盘按钮的类型,如果按钮是下一个,那么你的文本字段应该为每个按钮都有一个唯一的标签:
-(IBAction)didTapOnCustomNextButton:(id)sender
{
UITextField * textField = (UITextField *)sender ;
if(textField.returnKeyType == UIReturnKeyNext)
{
NSInteger nextTextField = textField.tag+1;
UIResponder* responder = [textField.superview viewWithTag:nextTextField];
if (responder!=nil)
{
[responder becomeFirstResponder];
}
else
{
[textField resignFirstResponder];
}
}
else
{
[textField resignFirstResponder];
}
}
编辑 1:
我编辑了我的代码以在 IBAction 中工作,还修复了一些变量名称
1.first,你需要找到你的textfield
返回键类型,然后根据它在工具栏上制作一个Barberton。
-(void)customizeToolbarMethod
{
if(textField.returnKeyType == UIReturnKeyNext)
{
UIBarButtonItem *barBtnPrev = [[UIBarButtonItem alloc] initWithTitle:@"Next"
style:UIBarButtonItemStyleBordered
target:self action:@selector(actionBtnNextForPassword)];
}
else if(textField.returnKeyType == UIReturnKeyDone)
{
UIBarButtonItem *barBtnDone = [[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleDone
target:self action:@selector(actionResignKeyBoard)];
}
//set this bar button onto your toolbar by making them array of bar-button
}
-(void) actionBtnNextForPassword
{
//do what you want to do......
}
-(void)actionResignKeyBoard
{
//do what you want to do......
}
以下方法对我有用:
-(IBAction)customNextButtonAction:(id)发件人{
for (UITextField *textField in [self.textFieldContainingView subviews]) {
if ([textField isKindOfClass:[UITextField class]] && textField == self.desiredTextField) {
[self.desiredTextField resignFirstResponder];
UIView *next = self.nextTextField;
[next becomeFirstResponder];
}
}
}
谢谢大家的帮助。
我有一个应用程序,我必须在其中实现屏幕键盘顶部的自定义快速输入建议。 Where(QuickType Suggestion Box) 右键行为就像键盘 return 类型行为一样。如果键盘 return 键是 "next" 那么建议的右键将是 "next",如果 "Done" 那么它也必须是 "Done" 以及类型操作. 当它出现时,我在键盘的顶部看到了三个按钮。但我无法弄清楚,如何使用它? 有可能用这个技巧吗?如何? 如果,还有其他方法可以做到这一点,请提出建议。
好的,所以首先你需要知道键盘按钮的类型,如果按钮是下一个,那么你的文本字段应该为每个按钮都有一个唯一的标签:
-(IBAction)didTapOnCustomNextButton:(id)sender
{
UITextField * textField = (UITextField *)sender ;
if(textField.returnKeyType == UIReturnKeyNext)
{
NSInteger nextTextField = textField.tag+1;
UIResponder* responder = [textField.superview viewWithTag:nextTextField];
if (responder!=nil)
{
[responder becomeFirstResponder];
}
else
{
[textField resignFirstResponder];
}
}
else
{
[textField resignFirstResponder];
}
}
编辑 1: 我编辑了我的代码以在 IBAction 中工作,还修复了一些变量名称
1.first,你需要找到你的textfield
返回键类型,然后根据它在工具栏上制作一个Barberton。
-(void)customizeToolbarMethod
{
if(textField.returnKeyType == UIReturnKeyNext)
{
UIBarButtonItem *barBtnPrev = [[UIBarButtonItem alloc] initWithTitle:@"Next"
style:UIBarButtonItemStyleBordered
target:self action:@selector(actionBtnNextForPassword)];
}
else if(textField.returnKeyType == UIReturnKeyDone)
{
UIBarButtonItem *barBtnDone = [[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleDone
target:self action:@selector(actionResignKeyBoard)];
}
//set this bar button onto your toolbar by making them array of bar-button
}
-(void) actionBtnNextForPassword
{
//do what you want to do......
}
-(void)actionResignKeyBoard
{
//do what you want to do......
}
以下方法对我有用:
-(IBAction)customNextButtonAction:(id)发件人{
for (UITextField *textField in [self.textFieldContainingView subviews]) {
if ([textField isKindOfClass:[UITextField class]] && textField == self.desiredTextField) {
[self.desiredTextField resignFirstResponder];
UIView *next = self.nextTextField;
[next becomeFirstResponder];
}
}
}
谢谢大家的帮助。