2

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

一些关于 SO 的搜索表明不可能以编程方式在 UITextField 中设置光标位置。

我已经研究过使用 UITextView 代替。这确实允许设置光标位置。但是滚动行为变得非常烦人。

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

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

4

2 回答 2

4

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

于 2012-05-09T03:02:49.187 回答
0

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

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

- (BOOL) scrollingEnabled   
{
    return NO;
}

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

于 2011-01-04T19:27:53.410 回答