Objective c 我是否可以为iOS创建自定义文本字段和键盘,而不创建子类化UIControl?
我的应用程序将要求用户输入化学公式(H2O,Na^2+),由于下标和上标可能会让用户对键入过程感到困惑,我决定制作一个自定义键盘 当用户键入一个数字作为下标时,它应该作为下标显示在屏幕上。我发现的唯一方法是使用NSAttributedString,它显然只适用于CoreText。因为我不能在UITextField中包含CoreText,所以我还需要创建一个自定义文本字段。我在查看UITextView,但文档中指出字体样式必须在整个文本中保持一致,这意味着我不能有下标Objective c 我是否可以为iOS创建自定义文本字段和键盘,而不创建子类化UIControl?,objective-c,keyboard,custom-controls,uitextfield,subclass,Objective C,Keyboard,Custom Controls,Uitextfield,Subclass,我的应用程序将要求用户输入化学公式(H2O,Na^2+),由于下标和上标可能会让用户对键入过程感到困惑,我决定制作一个自定义键盘 当用户键入一个数字作为下标时,它应该作为下标显示在屏幕上。我发现的唯一方法是使用NSAttributedString,它显然只适用于CoreText。因为我不能在UITextField中包含CoreText,所以我还需要创建一个自定义文本字段。我在查看UITextView,但文档中指出字体样式必须在整个文本中保持一致,这意味着我不能有下标 我是否需要为这两种情况划分U
我是否需要为这两种情况划分UIControl子类并从头开始?或者我可以从一个已经具有键盘/textfield某些属性的替代类开始吗?是的,您需要创建自己的
UIView
子类
但是,通过采用UIKeyInput
协议,您可以轻松支持键盘输入,覆盖可以成为第一响应程序
,因此它返回YES
,并添加UIAPTgestureRecognitor
:
[self addGestureRecognizer:
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(becomeFirstResponder)]];
如果您希望允许用户选择文本范围并使用自动更正,那么就更难了:您需要采用协议uiteImport
自定义键盘非常简单:
- 或者,您可以覆盖
,该视图允许您显示连接到键盘的自定义视图inputAccessoryView
- 或者,您重写
,这样它将返回一个将显示在键盘位置的自定义视图inputView