gpt4 book ai didi

cocoa-touch - iOS 6 UITextField Secure - 如何检测退格清除所有字符?

转载 作者:行者123 更新时间:2023-12-03 20:16:45 24 4
gpt4 key购买 nike

在 iOS 6 中,如果您在安全文本字段中键入文本,更改为另一个文本字段,然后返回安全文本字段并按退格键,所有字符都会被删除。我对这种情况很好,但是,我正在尝试根据此安全文本字段中是否包含字符来启用/禁用按钮。我知道如何确定字段中有哪些字符以及是否按下退格键,但我无法确定如何检测是否正在清除所有字符。

这是我用来获取字段的新文本的委托(delegate)方法,但是,如果退格是,我似乎无法弄清楚如何获取新文本(假设新文本只是一个空白字符串)击中清除所有字符。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
//returns the "new text" of the field
NSString * text = [textField.text stringByReplacingCharactersInRange:range withString:string];
}

任何帮助深表感谢。

谢谢!

最佳答案

我使用这个解决方案。删除字符后,它不需要局部变量并正确设置光标位置。

这是这个解决方案的混搭:

  • Backspace functionality in iOS 6 & iOS 5 for UITextfield with 'secure' attribute
  • how to move cursor in UITextField after setting its value

  • - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
    if (range.location > 0 && range.length == 1 && string.length == 0)
    {
    // Stores cursor position
    UITextPosition *beginning = textField.beginningOfDocument;
    UITextPosition *start = [textField positionFromPosition:beginning offset:range.location];
    NSInteger cursorOffset = [textField offsetFromPosition:beginning toPosition:start] + string.length;

    // Save the current text, in case iOS deletes the whole text
    NSString *text = textField.text;


    // Trigger deletion
    [textField deleteBackward];


    // iOS deleted the entire string
    if (textField.text.length != text.length - 1)
    {
    textField.text = [text stringByReplacingCharactersInRange:range withString:string];

    // Update cursor position
    UITextPosition *newCursorPosition = [textField positionFromPosition:textField.beginningOfDocument offset:cursorOffset];
    UITextRange *newSelectedRange = [textField textRangeFromPosition:newCursorPosition toPosition:newCursorPosition];
    [textField setSelectedTextRange:newSelectedRange];
    }

    return NO;
    }

    return YES;
    }

    关于cocoa-touch - iOS 6 UITextField Secure - 如何检测退格清除所有字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16765334/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com