textfield userinteractionenabled禁用也输入obj c

时间:2019-06-17 12:59:07

标签: objective-c textfield user-interaction

我有一个带有左视图和右视图的文本字段,我需要禁用对文本的触摸,但不能禁用右视图,这允许我删除使用自定义键盘输入的字符。为此,我必须仅禁用textfiel的输入..可以吗?

example

1 个答案:

答案 0 :(得分:0)

可以。一些想法:

  1. 在您的文本视图顶部添加一个新的UIView子视图,该子视图用于“忽略”用户触摸的部分。将其背景设置为clearColor,以使文本视图实际上可见(在调试最终颜色和位置之前,像红色这样的纯色实际上可能会很有用)。这种方法的一个小缺点是框架是矩形,因此按钮上方和下方的区域仍会接受用户输入(这可能会有所不同)。
  2. 反过来。将文本字段视图放入容器视图(也将背景色设置为透明色),使容器框架小于文本视图。将文本框的origin.x设置为负数。将容器视图剪辑的边界设置为NO。最终,您希望容器视图与后退按钮匹配并相应地放置textview。您还需要将直通触摸事件传递到文本字段:

从2开始的容器视图中

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
        return NO;
}

现在,只有您在容器视图内的文本视图区域可以接受触摸。