【问题标题】:Can I create a custom text field and keyboard for iOS w/o subclassing UIControl?我可以为没有子类化 UIControl 的 iOS 创建自定义文本字段和键盘吗?
【发布时间】:2011-12-22 06:18:22
【问题描述】:

我的应用程序将要求用户输入化学公式(H2O、Na^2+),并且由于下标和上标可能会使用户在输入过程中感到困惑,因此我决定制作一个自定义键盘。

当用户输入一个数字作为下标时,它应该在屏幕上显示为下标。我发现这样做的唯一方法是使用 NSAttributedString,它显然只适用于 CoreText。由于我不能在 UITextField 中使用 CoreText,因此我还需要创建一个自定义文本字段。我正在研究 UITextView,但文档显示字体样式必须在整个文本中保持一致,这意味着我不能有下标。

我是否需要为这两种情况都继承 UIControl 并从头开始?或者是否有一个我可以开始的替代类已经具有键盘/文本字段的一些属性?

【问题讨论】:

    标签: objective-c keyboard custom-controls uitextfield subclass


    【解决方案1】:

    是的,您需要创建自己的 UIView 子类。

    但是您可以通过采用UIKeyInput 协议轻松支持键盘输入,覆盖canBecomeFirstResponder 使其返回YES 并添加UITapGestureRecognizer

        [self addGestureRecognizer:
         [[UITapGestureRecognizer alloc] initWithTarget:self
                                                 action:@selector(becomeFirstResponder)]];
    

    我想让用户选择文本范围并使用自动更正,这更难:你需要采用协议UITextInput

    自定义键盘真的很简单:

    • 或者,您覆盖inputAccessoryView,它允许您显示附加到键盘的自定义视图,
    • 或者,您覆盖 inputView,因此它会返回一个自定义视图,该视图将显示在键盘的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-28
      • 2017-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      • 2016-09-14
      • 1970-01-01
      相关资源
      最近更新 更多