D.Rude Asked:2020-06-13 17:02:13 +0800 CST2020-06-13 17:02:13 +0800 CST 2020-06-13 17:02:13 +0800 CST 有没有办法防止光标在 UITextField 中移动? 772 我想禁用移动光标并使其始终位于行尾并禁用放大镜的功能。请告诉我如何做到这一点,我将不胜感激。 objective-c 1 个回答 Voted Best Answer Olter 2020-06-13T21:26:14+08:002020-06-13T21:26:14+08:00 UITextField 中的光标可以通过编程重新定位。 它是这样完成的: Objective-C - (void) setCursorToTextfieldEnd: (UITextField*) textfield { UITextPosition* end = [textfield endOfDocument]; [textfield setSelectedTextRange:[textfield textRangeFromPosition:end toPosition:end]]; } 迅速: func setCursorToTextfieldEnd(_ textfield: UITextField) { let end = textfield.endOfDocument textfield.selectedTextRange = textfield.textRange(from: end, to: end) } 此方法将光标移动到控件中文本的末尾。因此,从您需要的地方调用它(例如, fromtextFieldDidBeginEditing或textFieldShouldReturn) 用放大镜,情况更糟。原则上,您可以通过以下方式禁用放大镜textfield.isUserInteractionEnabled:将参数设置为 NO attextFieldShouldBeginEditing并将其删除回textFieldDidEndEditing。除了放大镜,这也会原则上禁止光标移动(可以继续输入文字)。在我看来,这是一个疯狂的拐杖,如果你需要它,请三思而后行。
UITextField 中的光标可以通过编程重新定位。
它是这样完成的:
Objective-C
迅速:
此方法将光标移动到控件中文本的末尾。因此,从您需要的地方调用它(例如, from
textFieldDidBeginEditing
或textFieldShouldReturn
)用放大镜,情况更糟。原则上,您可以通过以下方式禁用放大镜
textfield.isUserInteractionEnabled
:将参数设置为 NO attextFieldShouldBeginEditing
并将其删除回textFieldDidEndEditing
。除了放大镜,这也会原则上禁止光标移动(可以继续输入文字)。在我看来,这是一个疯狂的拐杖,如果你需要它,请三思而后行。