我对iPhone开发很新,所以请原谅我的无知。我用谷歌搜索了一下,到目前为止没有任何用处。这就是我想做的事情:
我希望在触摸UITextField时弹出一个子视图(在后台显示其余部分)。弹出窗口是我在IB中创建的计算器UIView。由于Apple的开发人员指南,似乎有一个弹出式节目比自定义键盘更好。
这是我的问题。如何捕获UITextField上的触摸以及如何显示子视图?
我尝试过以下内容来显示子视图,但没有运气:
CustomCalculator *customCalc = [[CustomCalculator alloc] initWithNibName:@"CustomCalculator" bundle:nil];
UIViewController *calcController = [self.customCalc.view];
[self.view addSubview:calcController.view];
答案 0 :(得分:1)
使用委托方法:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
//Add your subview here
return NO; //this will stop the keyboard from poping up
}
这样,当有人点击文本字段时,您的视图将弹出而不是键盘。 现在,一旦用户与您的视图交互,您将不得不直接操作textfield.text属性中的字符串作为对视图中用户点击按钮的反应。
答案 1 :(得分:0)
实现UITextFieldDelegate,其方法为
-(void) textFieldDidBeginEditing:(UITextField *)textField
触摸UITextField时会触发上述方法。然后你可以定位UIPopoverController(我猜这就是你用来在弹出窗口中显示视图的东西),一旦完成,就会将值传递回UITextField。因此,popover的/ viewcontroller呈现的委托应该是你的文本字段对象。
编辑:看到下面的另一个答案后,我惊讶地发现我忘了告诉你如何阻止键盘显示。把它作为我上面提到的方法的第一行: [textField resignFirstResponder];