这是我的场景:
我的StoryBoard中有一个用于我的映射功能的UIViewController。我添加了一个谷歌地图视图(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 & UIView的按钮。它有一个支持类文件,并且所有的UITextFields属性都已经设置好了(委托、出口等)。
我将我的自定义视图添加到我的Map VC中,如下所示:
UIView *topBar = [[MapTopBar alloc] initWithFrame:CGRectMake(0, 0, 320, 49)];
[self.view addSubview:topBar];我的自定义视图正在被添加到主视图中,但是UITextField没有接收到任何触摸事件。键盘未显示,字段中无光标,无任何内容。这就好像有什么东西掩盖了它,不允许任何用户交互。它旁边的按钮可以按下,并且工作正常。
我尝试过许多不同的方法(以编程方式创建整个topBar视图,以编程方式添加文本字段),但无论如何,文本字段都不会获得用户交互。
我已经启用了用户交互,确保文本字段上没有视图,所有都是空的。我觉得我错过了一些简单的东西。为什么我不能与我的文本字段交互?
另外:如果相关,上面的代码在它自己的sub中,在超级调用之前从viewDidLoad调用。
发布于 2013-07-02 05:08:51
似乎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;
}发布于 2013-11-28 22:28:35
我也有同样的问题!你在周围找到工作了吗?看起来UITextField的框架一切正常。出于调试的目的,我在UITextField上面放了一个按钮,这个按钮可以触摸到。也许问题出在Google地图视图处理触摸或ui绘制的方式上?
发布于 2014-05-08 03:17:48
确保将文本字段插入到内容视图中。
https://stackoverflow.com/questions/17413563
复制相似问题