iOS - 处理无法在UITextField中设置光标位置

时间:2011-01-04 16:03:49

标签: iphone ios cursor uitextfield cursor-position

我正在开发一个使用自定义键盘进行文字输入的应用。键盘应该有“前进”和“后退”键。

SO的一些搜索表明,无法以编程方式在UITextField中设置光标位置。

我已经看过使用UITextView了。这确实允许设置光标位置。但滚动行为非常烦人。

我想知道是否有人知道一个好的解决方法。基本上,我想要一些有文本和光标的东西,我可以通过编程方式设置光标位置。

编辑:有趣的是,如果我在模拟器中有一个UITextField并按下我的mac键盘上的前进或后退箭头键,则光标会向前或向后移动。但是,我无法在设备上看到任何模仿此行为的方法。 。 。或者,就此而言,用鼠标点击模拟器屏幕。

2 个答案:

答案 0 :(得分:4)

当时接受的答案是正确的,但现在已经过时了。在iOS 5中,UITextField符合UITextInput协议。因此,可以通过selectedTextRange属性设置光标位置。

答案 1 :(得分:0)

我还使用UITextView来设置光标位置。

如果您继承UITextView(它本身是UIScrollView的特化),您可以覆盖“scrollingEnabled”并返回NO:

- (BOOL) scrollingEnabled   
{
    return NO;
}

我还必须使用contentInset和contentOffset属性来获得我想要的内容。