【问题标题】:Displaying a custom control when clicking UITextField [closed]单击 UITextField 时显示自定义控件 [关闭]
【发布时间】:2014-02-26 06:58:15
【问题描述】:

iOS中,当点击UITextField时,会弹出一个系统默认的数字键盘。我已经做了自己的控制。我想在单击UITextField 时调出我自己的控件,就像系统默认数字键盘一样。我可以在编程中这样做吗?如果有,怎么做?

【问题讨论】:

    标签: ios iphone uitextfield


    【解决方案1】:

    您可以通过[self.view endEditing:YES]; 隐藏键盘并显示您自己的控件。

    试试上面UITextField委托方法下面的代码行:

    - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;        // return NO to disallow editing.
    - (void)textFieldDidBeginEditing:(UITextField *)textField;           // became first responder
    

    【讨论】:

    • 那我点击的时候怎么添加自己的控件呢?
    • @GoddessGuard - 你可以通过动画做到这一点
    • 你可以通过展示一个带有你的控件的视图控制器来做到这一点。
    • @GoddessGuard - 首先在上面的委托方法中隐藏键盘,然后在相同的方法中,然后在您的控件中添加启动代码
    【解决方案2】:

    有一个用于此目的的属性。只需将其分配给您的自定义控件的视图,如下所示:

    [yourTextField setInputView:yourCustomControlsView];
    

    【讨论】:

      【解决方案3】:

      带有自定义视图和自定义按钮。键盘本身很容易做,您只需在视图上放置一些按钮,然后显示该视图。您真正的问题是将按钮操作连接到文本字段。

      您必须检查第一响应者,然后将与您的自定义键盘对应的值添加到其文本中。在文本字段中从键盘实际“输入”那些奇怪的字符将是一个更加困难的问题。我不熟悉,那些是真正的ASCII字符吗?

      不管怎样,你要做很多工作。代码不是很困难,需要一些复杂的算法,但实现起来会很棘手和复杂,所以要小心

      【讨论】:

      • 我只想显示一个自定义的数字键盘。那么点击的时候怎么调出来呢?
      【解决方案4】:

      试试下面的代码。确保将代表分配给UITextField

      - (void)textFieldDidBeginEditing:(UITextField *)textField
      {
          [textField resignFirstResponder];
          CustomNumberPadViewController *customNumberPadViewController = [[CustomNumberPadViewController alloc] initWithNibName:@"CustomNumberPadView" bundle:nil];
          [self presentViewController:CustomNumberPadViewController animated:YES completion:nil];
      }
      

      【讨论】:

        猜你喜欢
        • 2015-07-03
        • 2011-06-30
        • 2015-08-16
        • 1970-01-01
        • 1970-01-01
        • 2016-06-30
        • 1970-01-01
        • 1970-01-01
        • 2020-03-29
        相关资源
        最近更新 更多