我有一个文本字段,我想插入一个电话号码。问题是,我使用数字键盘,没有任何输入键,我没有该键,我不知道如何关闭文本字段。
有没有办法检查文本字段中有多少个字符,并在有X个字符时关闭数字键盘?
抱歉我的英语和noob的问题,但我刚刚开始与ObjC。
谢谢 *
对不起,伙计们,我忘了告诉你们,我已经尝试过这个:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if (textField.text.length== 9) {
[textField resignFirstResponder];
}
return YES;
}
7条答案
按热度按时间w1e3prcc1#
是的,你有两个选择在我看来,你可以:
A.检查在委托方法shouldChangeTextInRange中返回的字符数,然后如果达到限制,则退出第一响应者(当您退出第一响应者时键盘解除,
或B:
覆盖视图的touchesEnded方法并调用resignFirstResponder,这样当用户触摸textField之外的视图时,键盘就会消失。-这就是我在应用中所做的。
就像这样:
只需将此方法添加到您的viewController中,当视图中的触摸结束时,它将自动调用,在此方法中,您只需简单地resignFirstResponder,键盘将消失。
我认为在触摸结束时这样做比开始时更好,当你从视图中抬起手指时,而不是最初触摸键盘时,键盘会"感觉"更好。
oyjwcjzk2#
我发现resignFirstResponder不包含最后输入的字符。我不得不这样做,
yizd12fk3#
达到最大字符数时,将新字符添加到
textfield
中的当前文本,然后关闭键盘ev7lccsx4#
每当用户添加一个数字时,文本字段的代理人将通过此方法得到通知:
您可以设置代理,以便监视文本字段中修改内容的长度,并在达到预期长度时关闭字段。
然而,这有很大的可能性让你的用户感到沮丧:他们会时不时地在输入最后一个字符时出错,然后字段将关闭,不让他们更正问题。更好的方法是dismiss the pad when users tap away from your text field,它使最终用户能够控制正在发生的事情:
1qczuiv05#
你可以只把一个工具栏上的完成,在点击该按钮,你可以隐藏键盘和工具栏以及。
也可以使用this自定义工具
gcmastyq6#
对上面的一些建议不保留输入的最后一个字符有问题。
我发现这对我很有效。
方法只是在文本生成时检查文本的长度,然后运行[textField resignFirstResponder]将其关闭。
所有常见的textField委托都将在textField失去焦点和键盘被关闭时为textField运行。
nimxete27#
使用这个textfield委托方法来找出textField的长度。text