- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我有一个自定义键盘,用于编辑 mytextField
中的文本,效果很好。但是,我永远无法让 shouldChangeCharactersInRange
委托(delegate)使用我的自定义键盘执行。当我使用我的实际键盘时它会执行(显然不是默认的 iPhone 键盘,因为我设置了 mytextField.inputView = numberPad.view)。我应该怎么做才能使用自定义键盘触发 shouldChangeCharactersInRange
委托(delegate)?顺便说一句,自定义键盘只是一堆按钮。
- (void) numberPadPressed: (UIButton *)sender {
[mytextField insertText:[[NSNumber numberWithInt:sender.tag] stringValue]];
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *resultingString = [textField.text stringByReplacingCharactersInRange: range withString: string];
NSLog(@"shouldChangeCharactersInRange: %@", resultingString);
return true;
}
- (void)viewDidLoad {
mytextField.text = @"";
mytextField.inputView = numberPad.view;
mytextField.delegate = self;
[mytextField becomeFirstResponder];
}
最佳答案
您永远不会得到使用自定义键盘调用的 shouldChangeCharactersInRange
。
你能得到的是UITextField
的事件UIControlEventEditingChanged
。因此,与其依赖 shouldChangeCharactersInRange
方法(众所周知,该方法存在错误),不如依赖此事件,每次用户更改文本字段的内容时都会触发该事件。
[textField addTarget:self action:@selector(myTextfieldChangedMethod:) forControlEvents:UIControlEventEditingChanged];
如果您使用自定义键盘修改文本字段,只需调用此方法通知所有监听器事件 UIControlEventEditingChanged
。
[textField sendActionsForControlEvents:UIControlEventTouchUpInside];
关于ios - 如何让 UITextFieldDelegate.shouldChangeCharactersInRange 触发自定义 inputView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4674023/
我试图在将价格和数量乘以文本字段后获得总值(value)。当数量为 10 或有任何两位或三位数字时,我没有得到值。这种方法一次只需要一个字符。 - (BOOL)textField:(UITextFie
我正在实现一个文本字段来输入用户密码。我正在尝试将存储密码的长度与用户输入的密码相匹配。当长度匹配时,我尝试验证密码。如果密码不匹配或长度大于存储值,那么我会尝试清除文本字段(else-if),但最后
我在警报 View 中有一个名为 phoeNumberTF 的文本字段。 phoneNumberTF.delegate = self; UIAlertController *alert = [UIAl
我有一个简单的 UItextField。在这一个我想只有 4 个数字(字符串)。如果此字符串不等于另一个字符串,则应清除输入(完美运行)。但在 shouldChangeCharactersInRang
我正在使用以下 textfield delegate 来验证用户输入。 假设 currentTotal 等于 30.00 美元,每当用户输入 两次 等于或大于 currentTotal 并且我正在尝试
如果我实现方法shouldChangeCharactersInRange范围值和文本大小之间存在某种不一致。当我的文本字段只有一个普通字母(如“a”)并按退格键时,要替换的文本是一个空字符串,text
我有必须调用的方法来检查手机号码范围和其他格式。但是这个方法没有被调用:( -(BOOL)textField:(UITextField *)textField shouldChangeCharacte
有时,当我只点击一个字符时,shouldChangeCharactersInRange 会被调用两次。 例如,我输入“avion par c”,程序被调用并添加我第二个“c”结果是“avion par
用解决方案更新了下面的代码。 这适用于您想要的任意多个字段。 它还修复了该方法返回 false 时文本框卡住的问题。 下面这行是引导方法在返回 false 后返回 true 的内容。 newStrin
我正在使用rangeofString和textfield:shouldChangeCharactersinRange:来限制将在文本字段中有效的击键类型。 -(BOOL) textField:(UIT
问题: 文本字段不接受字符。 shouldChangeCharactersInRange 未针对所有 3 个文本字段调用。 我有 3 个委托(delegate)类的实现,就像在 main 中一样。所有
是否可以在两个不同的位置设置 textFieldShouldReturn 和 shouldChangeCharactersInRange。 目前我在一个单独的文件中使用 shouldChangeCha
您好,我想在用户在文本字段中输入文本时验证电子邮件地址。当错误的电子邮件然后显示警报并返回否以留在电子邮件文本字段中时,它正在处理返回和文本字段结束编辑但不处理文本字段 shouldChangeCha
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementSt
我有一个 UITextField,带有一个清除按钮并启用了自动更正。如果我输入“Thg”,自动更正会提示“The”。现在,如果我按下清除按钮,textFieldShouldClear 会被调用,然后
我有一个表格 View 。在 cellForRowAtIndexPath 中,我有一个单元格,在该单元格中有 UITextField。我这样设置文本字段的委托(delegate):cell.textF
我有一个 UITextField,我正在尝试将其格式化为电话号码,但由于某种原因,我正在努力获取 UITextField 的第一个字母。 func textField(textField: UITex
这是我的代码: - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range repl
我有一个 textField,用户可以在其中输入电子邮件地址。我想在输入文本成为有效电子邮件地址的那一刻激活提交按钮。 验证有效,但 shouldChangeCharactersInRange 中的代
我正在处理包含 4 个文本字段的注册页面。其中一个 text fields 用作 Picker-view,当用户 tap 它时,一个 picker-view 将弹出,其中包含可供选择的选项。 问题是我
我是一名优秀的程序员,十分优秀!