我的应用程序将要求用户输入化学公式(H2O,Na ^ 2 +),并且由于下标和上标可能使打字过程让用户感到困惑,我决定制作一个自定义键盘。
当用户输入一个数字作为下标时,它应该在屏幕上显示为下标。我发现这样做的唯一方法是使用NSAttributedString,它显然只适用于CoreText。由于我不能在UITextField中使用CoreText,我还需要创建一个自定义文本字段。我正在研究UITextView,但文档中读到字体样式必须在整个文本中保持一致,这意味着我没有下标。
我是否需要为两种情况创建子类UIControl并从头开始?或者是否有一个我可以开始的替代类,它已经具有键盘/文本字段的一些属性?
答案 0 :(得分:5)
是的,您需要创建自己的UIView
。
但您可以通过采用UIKeyInput
协议轻松支持键盘输入,覆盖canBecomeFirstResponder
,以便返回YES
并添加UITapGestureRecognizer
:
[self addGestureRecognizer:
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(becomeFirstResponder)]];
我想让用户选择文本范围并使用自动更正,这更难:你需要采用协议UITextInput
。
自定义键盘非常简单:
inputAccessoryView
,允许您显示附加到键盘的自定义视图inputView
,要么返回一个自定义视图,代替键盘显示。