在最近的 iOS SDK 8.3 更新后,我无法正确地将子视图添加到本机键盘 (UIInputSetHostView)。在更新之前,我使用了这个解决方案(https://stackoverflow.com/a/26041697/1187451)并且一切正常。但是,目前此解决方法无法正常工作。在键盘顶部添加子视图并尝试选择项目后,将选择本机键盘的字母(屏幕截图: http: //grab.by/H3aY) . 如果我做对了,苹果已经改变了 UIInputSetHostView 的 pointInside:withEvent: return value...
基本上,我想做的是类似于 facebook 的 Messenger 应用程序,当聊天屏幕中的用户能够选择显示在键盘顶部的贴纸时。
也许你们中的一些人知道如何做到这一点?
我正在使用的代码:
UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
UIView* keyboard;
for(int i=0; i<[tempWindow.subviews count]; i++)
{
keyboard = [tempWindow.subviews objectAtIndex:i];
if([[keyboard description] hasPrefix:@"<UIInputSetContainerView"] == YES)
{
for(int i = 0 ; i < [keyboard.subviews count] ; i++)
{
UIView* hostkeyboard = [keyboard.subviews objectAtIndex:i];
if([[hostkeyboard description] hasPrefix:@"<UIInputSetHost"] == YES)
{
[hostkeyboard addSubview:stickersView];
}
}
}
}
谢谢!