1

在最近的 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];

            }
        }
    }
}

谢谢!

4

0 回答 0