在 iPhone 小键盘 iOS9 上方添加自定义按钮

Posted

技术标签:

【中文标题】在 iPhone 小键盘 iOS9 上方添加自定义按钮【英文标题】:Adding custom button above iPhone numpad iOS9 【发布时间】:2015-09-18 03:45:13 【问题描述】:

我们都知道如何在 iPhone 上的普通数字键盘上方添加自定义按钮(通常是完成)。与此相关的问题很少:

how to get keyboard location in ios 8 & add DONE button on numberPad

Can't find keyplane that supports type 4 for keyboard iPhone-Portrait-NumberPad; using 3876877096_Portrait_iPhone-Simple-Pad_Default

它们在 iOS9 之前运行良好。 iOS9 打破了现有的键盘视图层次结构和上述解决方案不再起作用。我花了几个小时试图找出差异,并决定将其发布在这里,因为它可能对其他人有用。

【问题讨论】:

【参考方案1】:

与适用于 iOS7-8 的解决方案的区别如下:

// Note index 2 here! In pre-iOS8 keyboard view panel was under second window after UIWindow, in iOS9 - they put some other views on the place and shifted everything one element down.
UIWindow *tempWindow = [[[UIApplication sharedApplication] windows][2];
UIView *keyboard;
for (int i = 0; i < [tempWindow.subviews count]; i++)

    keyboard = [tempWindow.subviews objectAtIndex:i];
    // keyboard view found; add the custom button to it
    if ([[keyboard description] hasPrefix:@"<UIPeripheralHostView"] == YES)
    
        [keyboard addSubview:doneButton];
    


【讨论】:

我有同样的问题我如何从 IOS9 的窗口中获取 UIKeyboard 建议 感谢@sha 的帮助,我在键盘上添加了视图,但现在的问题是当我单击 tableview 行时,我在键盘上的视图是 Uitableview,请告知。跨度> @ManjitSingh:这与键盘和 iOS9 问题完全无关。 Xcode 7 和 iOS 9 崩溃了。你检查了吗。 @Abhinav,它到底在哪里崩溃了?

以上是关于在 iPhone 小键盘 iOS9 上方添加自定义按钮的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS9 公测中设置自定义键盘高度

ios) 如何在自定义键盘上方创建建议视图

如何在键盘上方滚动自定义 UITextField 单元格

如何在键盘视图和顶视图中添加自定义子视图? (iOS8 及以下无法在 iOS9 中使用)

移除 iphone 键盘上方的“bar”

适用于iPhone X的自定义键盘inputView.frame大小