以编程方式将文本插入UITextView而不移动插入位置。

时间:2013-08-03 01:09:29

标签: ios objective-c uitextview

所以我有一个用户可以编辑的UITextView,但也可能有一些文本以编程方式插入到textView中,并且它可以插入textView中的任意范围。目前,这也使得插入位置从用户当前工作的位置移动,这是不希望的。所以我随时都这样做:

self.textView.text = //some text inserted

它移动了插入位置。那么什么是阻止插入位置移动的最佳方法,或者使其成为完全无知且独立的程序化更改,并且仅针对用户更改而移动?

2 个答案:

答案 0 :(得分:1)

最好的答案是设置像你一样插入的文本,但之后,使用以下方法设置插入位置:

textView.selectedRange = NSMakeRange(0,0)

第一个数字是您要放置插入符号的文本视图中的位置。无论添加什么文本,如果您希望将其保留在开头,那么您就是这样做的。但是,您希望包含一个条件,以便仅在添加的非类型文本周围保留它。当用户键入时,您希望插入符号移动。

答案 1 :(得分:0)

在以编程方式插入文本之前,您可以通过UITextView's "selectedRange" property获取当前插入点。

插入新文本后,您可以将文本视图的选定范围重置为插入之前的范围...或者,如果插入点位于插入新文本块之前,则需要考虑插入文本的长度,重新计算前一个插入符号位置的位置。

相关问题