我想基本知道这家伙的问题是什么how to detect when the iOS default keyboard type switches from text to numbers
我想知道如何知道用户何时从默认键盘的字母表面切换到数字面。
我想要的原因是,当用户从一个文本字段更改为下一个文本字段时,我想保留数字方面,如果他们写的最后一件事是数字。
我无法使用numbersAndPunctuation键盘类型作为一个整体,因为它无法更改为表情符号,我仍然需要这样做。 但是,如果我知道他们何时切换,我将能够从NumbersAndPunctuation开始,然后当用户切换时我可以将键盘类型更改为默认值,因此用户可以切换到表情符号。
在数字方面启动默认键盘的能力或能力。如果可能的话,这也是一个解决方案。
任何帮助将不胜感激:)
答案 0 :(得分:2)
这是我对"检测"的贡献。 keyboardType。从本质上讲,没有API可以获得你想要的东西。 https://stackoverflow.com/a/26095686/2719509
如何使用当前API获得所需的功能。
在移动textFields时不要使用动画。
诀窍是:保持键盘的状态保持textField不变并让用户相信他正在不同的textFields中写作。
希望它有所帮助。
答案 1 :(得分:0)
在文本字段委托中添加if (textField.keyboardType = UIKeyboardTypeNumbersAndPunctuation)
答案 2 :(得分:0)
试试这个,它会帮助你检测最后一个字符,使用它可以识别键盘类型。 (目前打开哪种类型的键盘?)
- (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters{
if([characters rangeOfCharacterFromSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]].location == NSNotFound){
NSLog(@"decimalDigitCharacterSet");
}else if([characters rangeOfCharacterFromSet:[[NSCharacterSet letterCharacterSet] invertedSet]].location == NSNotFound){
NSLog(@"letterCharacterSet");
}
return YES;
}
它为我工作..希望这会对你有帮助。