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