首页 文章

触摸UITextField时显示子视图

提问于
浏览
1

我对iPhone开发很新,所以请原谅我的无知 . 我用谷歌搜索了一下,到目前为止没有任何用处 . 这是我想做的事情:

当触摸UITextField时,我想要弹出一个子视图(其余的屏幕显示在后台) . 弹出窗口是我在IB中创建的计算器UIView . 由于Apple的开发人员指南,似乎有一个弹出式节目比自定义键盘更好 .

这是我的问题 . 如何捕获UITextField上的触摸以及如何显示子视图?

我尝试了下面的内容来显示子视图,没有运气:

CustomCalculator *customCalc = [[CustomCalculator alloc] initWithNibName:@"CustomCalculator" bundle:nil];

UIViewController *calcController = [self.customCalc.view];

[self.view addSubview:calcController.view];

2 回答

  • 1

    使用委托方法:

    - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
       //Add your subview here 
    
       return NO; //this will stop the keyboard from poping up
      }
    

    这样,当有人点击文本字段时,您的视图将弹出而不是键盘 . 现在,一旦用户与您的视图交互,您将不得不直接操作textfield.text属性中的字符串作为对视图中用户点击按钮的反应 .

  • 0

    实现UITextFieldDelegate,方法就是

    -(void) textFieldDidBeginEditing:(UITextField *)textField
    

    触摸UITextField时会触发上述方法 . 然后你可以定位UIPopoverController(我猜这就是你用来在弹出窗口中显示视图的东西),一旦完成,就会将值传递回UITextField . 因此,popover的/ viewcontroller呈现的委托应该是您的文本字段对象 .

    编辑:看到下面的另一个答案后,它让我感到震惊,我忘了告诉你如何阻止键盘显示 . 把它作为我上面提到的方法的第一行:

    [textField resignFirstResponder];
    

相关问题