如何基于TextField的可见大小限制UITextField的输入文本量?

GoshDangitBobby

我有一个表单应用程序,其中包含许多不同大小的UITextField。我想将输入文本的数量限制为截断字符串之前文本字段可以容纳的文本数量。堆栈溢出的所有其他答案似乎都知道限制手头字符的数量(例如,我想限制为40个字符),但是我需要知道如何根据文本字段的大小来限制它(这取决于文本字段)到文本字段)。

有没有办法做到这一点?

谢谢

林德西·斯科特(Lyndsey Scott)

由于字符串的长度取决于字符,因此您无法在知道字符之前确定最大字符数,因此我建议您在测试过程中测试每个字符输入是否适合文本字段,例如:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

    // Combine the new text with the old
    NSString *combinedText = [textField.text stringByReplacingCharactersInRange:range withString:[NSString stringWithFormat:@"%@", string]];

    // See if the width of the combined text + the text field's
    // left layout margin + the text field's right layout margin
    // is greater than or equal to the width of the textField
    // (I've multiplied the right margin by 2 to prevent the cursor
    // from shifting the field one extra character when the text field
    // if full)
    CGFloat textWidth =  [combinedText sizeWithAttributes:@{NSFontAttributeName: textField.font}].width + textField.layoutMargins.left + textField.layoutMargins.right * 2;
    CGFloat textFieldWidth = textField.frame.size.width;

    // If the text + margins is as wide or wider than the text field
    // don't add the new character, i.e. return NO. Else add the
    // character by returning YES.
    if (textWidth >= textFieldWidth) {
        return NO;
    } else {
        return YES;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

UI设计:如何在我向TextField中输入文本时将TextField文本设置为不可见

来自分类Dev

如何限制文本在容器中的可见性?

来自分类Dev

限制TextField中的文本输入

来自分类Dev

如何使键盘对UItextfield不可见

来自分类Dev

searchView的输入文本不可见

来自分类Dev

如何将带有多选和可见文本的 TextField 作为标签

来自分类Dev

如何在不可见的文本字段中输入文本

来自分类Dev

如何仅使用XAML基于tap事件更改文本块的可见性

来自分类Dev

如何使用Firemonkey根据TButton.Text中可见的文本调整字体大小?

来自分类Dev

如何使用Firemonkey根据TButton.Text中可见的文本调整字体大小?

来自分类Dev

当文本填充输入的可见长度时阻止输入

来自分类Dev

限制可见的数量

来自分类Dev

如何根据所选的收音机(如果可见)验证文本输入

来自分类Dev

如何使文本在android ListView中可见

来自分类Dev

如何使可见的文本svg动画启动?

来自分类Dev

如何限制UIAlertView UITextField中的字符输入

来自分类Dev

如何限制输入量?电源外壳

来自分类Dev

用户输入时如何保持输入占位符可见

来自分类Dev

用户输入时如何保持输入占位符可见

来自分类Dev

如何限制文件系统安装的可见性?

来自分类Dev

如何限制客户端可见的解析配置参数?

来自分类Dev

如何设置UILabel或UITextField文本的大小的动画?

来自分类Dev

HTML如何基于javascript函数的返回值限制文本输入?

来自分类Dev

如何基于填写html表单使页面区域可见?

来自分类Dev

分页 - 限制可见页码

来自分类Dev

如何基于数字和限制数字输入

来自分类Dev

如何根据用户输入使图片框从可见变为不可见?

来自分类Dev

限制TextField输入

来自分类Dev

如果单击单选按钮,如何使不可见的文本框可见?

Related 相关文章

  1. 1

    UI设计:如何在我向TextField中输入文本时将TextField文本设置为不可见

  2. 2

    如何限制文本在容器中的可见性?

  3. 3

    限制TextField中的文本输入

  4. 4

    如何使键盘对UItextfield不可见

  5. 5

    searchView的输入文本不可见

  6. 6

    如何将带有多选和可见文本的 TextField 作为标签

  7. 7

    如何在不可见的文本字段中输入文本

  8. 8

    如何仅使用XAML基于tap事件更改文本块的可见性

  9. 9

    如何使用Firemonkey根据TButton.Text中可见的文本调整字体大小?

  10. 10

    如何使用Firemonkey根据TButton.Text中可见的文本调整字体大小?

  11. 11

    当文本填充输入的可见长度时阻止输入

  12. 12

    限制可见的数量

  13. 13

    如何根据所选的收音机(如果可见)验证文本输入

  14. 14

    如何使文本在android ListView中可见

  15. 15

    如何使可见的文本svg动画启动?

  16. 16

    如何限制UIAlertView UITextField中的字符输入

  17. 17

    如何限制输入量?电源外壳

  18. 18

    用户输入时如何保持输入占位符可见

  19. 19

    用户输入时如何保持输入占位符可见

  20. 20

    如何限制文件系统安装的可见性?

  21. 21

    如何限制客户端可见的解析配置参数?

  22. 22

    如何设置UILabel或UITextField文本的大小的动画?

  23. 23

    HTML如何基于javascript函数的返回值限制文本输入?

  24. 24

    如何基于填写html表单使页面区域可见?

  25. 25

    分页 - 限制可见页码

  26. 26

    如何基于数字和限制数字输入

  27. 27

    如何根据用户输入使图片框从可见变为不可见?

  28. 28

    限制TextField输入

  29. 29

    如果单击单选按钮,如何使不可见的文本框可见?

热门标签

归档