gpt4 book ai didi

objective-c - 我可以为没有子类化 UIControl 的 iOS 创建自定义文本字段和键盘吗?

转载 作者:太空狗 更新时间:2023-10-30 03:52:11 24 4
gpt4 key购买 nike

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

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

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

最佳答案

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

但您可以通过采用 UIKeyInput 协议(protocol)轻松支持键盘输入,重写 canBecomeFirstResponder 因此它返回 YES 并添加 UITapGestureRecognizer :

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

如果您想允许用户选择文本范围并使用自动更正,那更难:您需要采用协议(protocol) UITextInput

自定义键盘非常简单:

  • 要么,您覆盖 inputAccessoryView,它允许您显示附加到键盘的自定义 View ,
  • 或者,您重写 inputView,以便它返回将显示在键盘位置的自定义 View 。

关于objective-c - 我可以为没有子类化 UIControl 的 iOS 创建自定义文本字段和键盘吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8600097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com