不允许点“。”在双击空格键上为UITextField

时间:2016-06-23 05:36:37

标签: ios iphone swift uitextfield

我在我的应用程序中遇到问题,当我按空格键两次时,“。”(点)被添加到TextField中。我不想让点“。”在双击空格键上。

注意:我知道这是iOS中textField的默认行为。

我提到了之前的答案iPhone: Disable the "double-tap spacebar for ." shortcut?,但它适用于textView,而不适用于textField。

我没有替换这一行

textView.selectedRange = NSMakeRange(range.location + 1, 0)

4 个答案:

答案 0 :(得分:0)

我有同样的问题,然后使用下面的委托方法,它被解决了,使用这段代码在textfield中没有显示的点,

swift代码:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
        let newString = (textField.text! as NSString).stringByReplacingCharactersInRange(range, withString: string) as? NSString

        let arrayOfString = newString?.componentsSeparatedByString(".");
        if arrayOfString?.count > 1
        {
            return false
        }

        return true
    }

目标C代码:

 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *newString1 = [textField.text stringByReplacingCharactersInRange:range withString:string];
    NSArray  *arrayOfString1 = [newString1 componentsSeparatedByString:@"."];

    if ([arrayOfString1 count] > 1 )
        return NO;

    return YES;
}

它为我工作,希望它有用

答案 1 :(得分:0)

$last_insert_id = $app->db->pdo->lastInsertId();

答案 2 :(得分:0)

雨燕4

final class RestrictedDoubleSpaceDotTextField: UITextField {

    override func awakeFromNib() {
        super.awakeFromNib()

        addTarget(self, action: #selector(didChangeText), for: .editingChanged)
    }

    @objc private func didChangeText() {
        let textWithoutDot = text?.replacingOccurrences(of: ".", with: " ", options: .literal, range: nil)
        text = textWithoutDot
    }
}

答案 3 :(得分:0)

从模拟器/ iPhone更改键盘设置。

在iPhone设置->常规->键盘->(关闭)中。”。快捷方式