文本字段 userinteractionenabled 禁用也输入 obj c

textfield userinteractionenabled disable also input obj c

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

example

当然是。一些想法:

  1. 在顶部的文本视图中添加一个新的 UIView 子视图,覆盖要 "ignore" 用户触摸的部分。将其背景设置为 clearColor 以便文本视图实际上可见(在调试过程中,在您对最终大小和位置感到满意之前,像红色这样的纯色实际上可能会有所帮助)。这种方法的一个小缺点是框架是矩形,因此按钮上方和下方的区域仍会接受用户输入(这可能会或可能不会对您的情况产生影响)。
  2. 反过来。将文本字段视图放在容器视图中(背景颜色也设置为清除颜色),使容器框架小于文本视图。将文本字段框架的 origin.x 设置为负数。将容器视图剪辑设置为 NO 的边界。最终您希望容器视图匹配您的后退按钮并相应地定位文本视图。您还需要将触摸事件传递到文本字段:

在 2) 的容器视图中

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

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