Как сделать всплывающие окна, как клавиатурные символы в пользовательской клавиатуре iOS8?

Я хочу создать всплывающее окно в пользовательской клавиатуре iOS8, как показано ниже.

Want to create this type of keyboard in iOS8

Некоторые коды работают, но не могут получить доступ к внешнему окну клавиатуры и возникают проблемы, как показано на рисунке ниже.

Issue in iOS8 Custom Keyboard

Ответы

Ответ 1

Из Руководство по программированию расширения приложений Apple:

Наконец, невозможно отобразить ключевые иллюстрации выше верхнего края основного вида пользовательских клавиатур, как это делает системная клавиатура iPhone, когда вы нажимаете и удерживаете клавишу в верхней строке.

Таким образом, кажется, что вы не можете добавить всплывающее окно вне рамки клавиатуры, поэтому ответ составителя - это лучшее, что вы можете сделать.

Ответ 2

Это то, что я сделал в своей пользовательской клавиатуре, работая

//adding pop up when character is tapped
- (void)addPopupToButton:(UIButton *)button
{


    CGRect frame,frame1;
    if(self.view.frame.size.width == 320)
    {
        //Keyboard is in Portrait
        frame = CGRectMake(0, -25, 28, 43);
        frame1=CGRectMake(0, 0, 28, 43);

    }
    else{
        //Keyboard is in Landscape
        frame = CGRectMake(3, -25, 35, 43);
        frame1=CGRectMake(0, 10, 35, 43);

    }
   //create pop up view
    UIView *popUp=[[UIView alloc]initWithFrame:frame];

    //create a label to add to pop up view
    UILabel *text = [[UILabel alloc] init];

    //set frame for the label and set label title
    [text setFrame:frame1];
    [text setText:button.titleLabel.text];
    text.textAlignment=NSTextAlignmentCenter;
    [text setFont:[UIFont boldSystemFontOfSize:30]];
    text.backgroundColor=[UIColor whiteColor];

    //add label as popup view subview
    [popUp addSubview:text];

    //add pop up view as button subview
    [button addSubview:popUp];

}


//remove Pop up view
-(void)endPopUpForButton:(UIButton*)button
{
    if ([button subviews].count > 1)
    {
        [[[button subviews] objectAtIndex:1] removeFromSuperview];
    }
}

enter image description here