繁体   English   中英

UIView中的UITextField没有响应用户交互

[英]UITextField within UIView not responding to user interaction

这是我的情景:

我的StoryBoard中有一个UIViewController用于我的映射功能。 我正在添加Google地图视图(GoogleMaps iOS 1.3.1),例如:

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
   longitude:151.20 zoom:6];
mapView_ = [GMSMapView mapWithFrame:CGRectMake(0, 49, 320, 450) camera:camera];
mapView_.myLocationEnabled = YES;
self.view = mapView_;

我创建了一个自定义视图:MapTopBar.xib。 简单地说,它是一个带有UIImageView (背景)和UITextField &Button的UIView 它有一个支持类文件,并且已设置了所有UITextFields属性(委托,出口等)。

我将我的自定义视图添加到我的Map VC中,如:

UIView *topBar = [[MapTopBar alloc] initWithFrame:CGRectMake(0, 0, 320, 49)];
[self.view addSubview:topBar];

我的自定义视图正被添加到主视图中,但UITextField未接收任何触摸事件。 键盘没有显示,字段中没有光标,没有。 好像有什么东西掩盖了它,不允许任何用户交互。 可以按下它旁边的按钮并正常工作。

我尝试过这么多种方式(以编程方式创建整个topBar视图,以编程方式添加文本字段),无论如何,文本字段都不会获得用户交互。

我启用了用户交互,确保没有视图位于文本字段之上,全部为null。 我觉得我错过了一些简单的事情。 为什么我不能与我的文本域互动?

另外:如果它是相关的,上面的代码是在超级调用之前从viewDidLoad调用它自己的子代码。

UITextField似乎超出了其父视图的范围,并且没有被剪裁。 (或者父视图超出其父视图的范围......等等)

在viewDidAppear中,使用调试器或NSLog以UITextField结尾的视图层次结构。 检查以确保每个视图的帧完全位于其父视图中。

像这样的东西应该可以识别任何帧外视图:

UIView* v = _myTextField;
while ( v.superview != nil )
{
    NSLog( @"%@ - %@", NSStringFromClass([v class]), CGRectContainsRect( v.superview.bounds, v.frame ) ? @"GOOD!" : @"BAD!" );
    v = v.superview;
}

我有同样的问题! 你找到了解决方法吗? 似乎UITextField的框架一切正常。 出于调试目的,我在UITextField上面放了一个按钮,这个按钮能够触及。 也许这笔交易与Google地图视图处理触摸或ui绘图的方式有关?

确保将文本字段插入内容视图。

我遇到了同样的问题,并在此处找到了解决方案https://stackoverflow.com/questions/20015266

似乎GMSMapView有一个BlockingGestureRecognizer,它阻止了与文本字段的交互。 如果禁用此功能,请记住父视图将从手势中接收事件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM