1

我有一个 UITextField,它必须闪烁光标,即使它的 userInteractionEnabled 属性设置为 NO。我不希望 UITextField 成为FirstResponder 并显示键盘。

现在你可能会问:

1.如果要隐藏键盘,为什么要显示光标?

A:问题是我需要向用户显示正在编辑的 UITextField,使用不同的/自定义键盘。

2. 那么为什么不使用 inputView 属性呢?

A:因为 inputView 中的键盘是从底部向上出现的,我希望我的自定义键盘位于屏幕中央。

那么让我们来看看真正的问题:

如何显示光标?有什么我可以设置的属性吗?如果没有,我将如何绘制光标?制作一个使用 alpha 添加和删除的 UIView,或者继承 UITextField 并覆盖 drawInRect?

4

1 回答 1

3

您可以添加一个带有重复动画的小型 UIView,该动画将 alpha 设置为 0 和 1 来回使用animateWithDuration:delay:options:animations:completion:.

[UIView animateWithDuration:1 
                      delay:0 
                    options:UIViewAnimationOptionRepeat 
                 animations:^{ [cursorView setAlpha:0]; }
                 completion:^(BOOL animated){ [cursorView setAlpha:1]; } ];

要将视图正确定位为文本字段的子视图,在输入的文本前面,可以使用NSString方法sizewithfont:forWidth:lineBreakMode:

于 2012-08-26T09:43:24.947 回答