在UITextField中禁用放大镜

Mel*_*emi 6 iphone cocoa-touch uitextfield

有没有办法阻止用户在UITextField中移动光标?我希望它留在字符串的末尾.

JRV*_*JRV 7

这是一个老问题,但我一直在寻找同一问题的答案,并找到了解决方案.

实际上,防止用户移动光标非常简单.只是将UITextField子类化并提供以下实现caretRectForPosition:

- (CGRect)caretRectForPosition:(UITextPosition *)position
{
    return [super caretRectForPosition:self.endOfDocument];
}
Run Code Online (Sandbox Code Playgroud)


Lal*_*hna 5

无需子类

您可以使用UITextFieldDelegate。它将禁用放大镜和文本选择。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    textField.userInteractionEnabled = NO;
    return YES;
}

- (void)textFieldDidEndEditing:(UITextField *)textField {
    textField.userInteractionEnabled = YES;
}
Run Code Online (Sandbox Code Playgroud)

注意:这只是一个绕过。


Ada*_*nst 1

没有办法阻止他们移动光标。但是,您可以通过实施以下命令来阻止他们编辑除最后之外的文本

\n\n

\xe2\x80\x93 textField:shouldChangeCharactersInRange:replacementString:

\n\n

文本字段委托中的方法。

\n\n

编辑:您还可以设置userInteractionEnabledNO使用户无法点击该字段。手动调用becomeFirstResponder以使字段获得焦点,因为用户无法点击来聚焦。

\n