自定义数字键盘 UIKeyboard

Posted

技术标签:

【中文标题】自定义数字键盘 UIKeyboard【英文标题】:Custom Number Pad UIKeyboard 【发布时间】:2010-08-18 11:05:18 【问题描述】:

我将如何创建一个自定义数字键盘,就像在“Tipulator”和其他应用程序中使用的一样。

我知道如何自定义 UIKeyboard,但它们的数字键盘看起来一点也不像默认的数字键盘。它甚至是一个 UIKeyboard 还是一个单独的 UIView?

【问题讨论】:

【参考方案1】:

我从事键盘工作已经有一段时间了。我会说这是否容易取决于您的目标文本输入视图是什么。如果是 UITextView,那么我们很好,如果是 UITextField,您可能会遇到一些问题,因为您无法像 un UITextView 那样访问当前光标文本位置。 (你可以检查 UITextView 和 UITextViewDelegate 方法)

如果您只想设置一个字符串并且不介意当前光标文本的位置,那么您不需要键盘。 (我认为这是 Tipulator 的情况)

顺便说一句:我刚刚在 youtube 上看到了 Tipulator,没有必要使用键盘。

【讨论】:

这就是我的怀疑。但是删除按钮如何工作以及如何将数字添加到末尾? 我看不到任何方法可以了解 UITextView 中光标的当前位置,即使没有 UITextFieldDelegate 的帮助。这个答案是有缺陷的。我的意思是 - 没有插入任何东西。使用自定义键盘,我应该在特定位置插入文本 - 这是我在插入之前需要知道的 - 所以在触发委托方法之前。仅在更改文本时调用委托方法,而不是仅在使用箭头键在 textView 周围移动时调用。 UITextViewDelegate 会告诉你 WHEN (textViewDid...),而 -(NSRange)[UITextView selectedRange] 会告诉你 WHERE。 UITextField 没有 selectedRange 方法,这就是为什么我说 UITextView 很容易。【参考方案2】:

从外观来看:它是一个自定义 UIView 子类。基本上,它只是一个面板,上面有 11 个按钮,所以应该很容易做到。

【讨论】:

以上是关于自定义数字键盘 UIKeyboard的主要内容,如果未能解决你的问题,请参考以下文章

将自定义 UITableViewCell 滚动到键盘上方?

为啥从自定义单元格调用时 UIkeyboard 不动画?

Instagram 如何将 UIKeyboard returnKey 自定义为“@”和“#”?

iOS自定义数字键盘

iOS应用程序中的自定义数字键盘问题

iPad应用程序的自定义数字键盘