Google maps UITextField不';不要进入编辑模式
我有一个ViewController,它的所有布局都是以编程方式完成的,因为它为google地图服务 我将按钮、图层和其他视图作为子视图放置在地图上,所有这些都非常有效 目标是单击一个按钮,然后将UITextField添加为子视图,只有当用户单击该按钮时,通过将其设置为成为第一响应者,才能显示框和键盘 当前状态UITextField出现,但它没有进入编辑模式,我尝试添加了一个点击手势,但它也不起作用 这是添加UITextField的代码Google maps UITextField不';不要进入编辑模式,google-maps,uitextfield,Google Maps,Uitextfield,我有一个ViewController,它的所有布局都是以编程方式完成的,因为它为google地图服务 我将按钮、图层和其他视图作为子视图放置在地图上,所有这些都非常有效 目标是单击一个按钮,然后将UITextField添加为子视图,只有当用户单击该按钮时,通过将其设置为成为第一响应者,才能显示框和键盘 当前状态UITextField出现,但它没有进入编辑模式,我尝试添加了一个点击手势,但它也不起作用 这是添加UITextField的代码 - (IBAction) searchBtn_Click:
- (IBAction) searchBtn_Click:(id)sender
{
[self.view addSubview:self.searchTextField];
}
-(UITextField*) searchTextField
{
if(_searchTextField == nil)
{
//set the location where to place the textField as well as its size.
CGFloat yAxis = self.yAxis - TEXT_FIELD_HEIGHT - TEXT_FIELD_PADDING_Y;
CGFloat textFieldWidth = (ROUND_BUTTON_SIZE + ROUND_BUTTON_PADDING_X)*(NUMBER_OF_MENU_BTN-2) +ROUND_BUTTON_SIZE;
//set all parameters to give it a interface builder look & feel
_searchTextField = [[UITextField alloc] initWithFrame:CGRectMake(self.screenMarginXAxis+5, yAxis, textFieldWidth, TEXT_FIELD_HEIGHT)];
_searchTextField.borderStyle = UITextBorderStyleRoundedRect;
_searchTextField.font = [UIFont systemFontOfSize:15];
_searchTextField.placeholder = @"enter address or location";
_searchTextField.autocorrectionType = UITextAutocorrectionTypeNo;
_searchTextField.keyboardType = UIKeyboardTypeDefault;
_searchTextField.returnKeyType = UIReturnKeyDone;
_searchTextField.clearButtonMode = UITextFieldViewModeWhileEditing;
_searchTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
_searchTextField.delegate = self;
}
return _searchTextField;
}
这是我为TapSirtation尝试的代码,它是在searchBtn\u Click:
方法中添加子视图后添加的
//set the tap gesture to identify when the user enters edit mode
tapSearchTextField = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(enterSearchEditMode)];
[tapSearchTextField setNumberOfTouchesRequired:1];
[tapSearchTextField setNumberOfTapsRequired:1];
[tapSearchTextField setDelegate:self];
[self.searchTextField addGestureRecognizer:tapSearchTextField];
-(void) enterSearchEditMode
{
[self.searchTextField becomeFirstResponder];
}
我有一种感觉,“[self.searchTextField]
”在您尝试添加手势识别器时为空。在那里设置断点和/或记录输出将证明这一点
您是否在视图控制器之外的任何位置引用“searchTextField
”属性
如果没有,请去掉“
@property
”位,继续使用ivar“\u searchTextField
”(例如,将“[self.searchTextField addgesturecognizer:tapSearchTextField];
”等行更改为“[\u searchTextField addgesturecognizer:tapSearchTextField];/code>”.属性不是空的,我只是从视图控件中引用它,不幸的是,我开始时它不是一个属性,它不工作,所以我更改并尝试了它。还有其他想法吗?