【问题标题】:How to make popup like keyboard characters in iOS8 custom keyboard?如何在 iOS8 自定义键盘中制作类似于键盘字符的弹出窗口?
【发布时间】:2014-10-12 05:23:42
【问题描述】:

我想在 iOS8 自定义键盘中创建弹出窗口,如下图所示。

一些代码正在运行,但无法访问键盘的外部窗口,并出现如下图 2 所示的问题

【问题讨论】:

    标签: ios iphone ios8 ios-app-extension custom-keyboard


    【解决方案1】:

    这是我在自定义键盘中所做的工作

    //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's subview
        [popUp addSubview:text];
    
        //add pop up view as button's subview
        [button addSubview:popUp];
    
    }
    
    
    //remove Pop up view
    -(void)endPopUpForButton:(UIButton*)button
    {
        if ([button subviews].count > 1)
        {
            [[[button subviews] objectAtIndex:1] removeFromSuperview];
        }
    }
    

    【讨论】:

    • 嗨,codeIgnitor 我们可以在 320*216 框架之外添加弹出窗口吗?因为我想制作更大的弹出窗口,超出这个框架,问题是视图的外部部分被裁剪,如上图所示。
    • @ScorpianAlive,我遇到了同样的问题!现在我暂时将它设置为 320.0.. 将为更大的弹出窗口工作。
    • @codeIgniter,我在问我可以让键盘高度大于 216 吗?
    • @ScorpianAlive,可以通过将 NSLayoutconstraint 添加到视图来更改自定义键盘的高度,请参阅本文档中的代码 developer.apple.com/library/prerelease/ios/documentation/… 但不适用于 xcode beta 3 和 4
    • @codeIgnitor 谢谢,您的链接适用于自定义高度 但是,如何处理纵向-横向方向的高度变化?由于横向保持相同的高度,我尝试应用相同的代码来降低高度,但无法处理键盘高度的方向变化。
    【解决方案2】:

    来自Apple App Extension Programming guide

    最后,无法在顶部边缘上方显示关键图稿 自定义键盘的主要视图,就像系统键盘一样 iPhone 当您点击并按住顶行中的一个键时。

    所以看起来你不能在键盘框架之外添加弹出窗口,所以codelgnitor的答案是你能做的最好的。

    【讨论】:

    • 我们可以做任何自定义代码来实现相同的功能。当我发现弹出窗口的代码显示单个字符时,它工作正常,但我需要显示多个字符,对于某些键也是如此。
    • 您可以在键盘上放置一个隐藏的键盘键行,然后在用户对某个键进行长按手势时使其可见。然后当用户按下该键盘行上的任意键时再次隐藏它。
    猜你喜欢
    • 1970-01-01
    • 2014-10-19
    • 2013-11-25
    • 2015-06-06
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    相关资源
    最近更新 更多