开发者社区 问答 正文

长按键时如何在键盘上拓展上使用popview功能键?

我正在使用Keyboard Extension,我需要像当我提到的问题那样的popView之类的功能,我想长按时我可以尝试使用简单的视图,但时这样的话我需要在longPress上使用popUp并使用更多键,例如 https://i.stack.imgur.com /TBLZL.jpg

根据goggle搜索,我发现了一些建议,但没有一个像这样工作 ,并且我发现了Objective c库CYRKeyboardButton,,例如这个库(我不想使用Bridging)。

展开
收起
南南唐语 2019-12-02 20:49:08 685 分享 版权
阿里云 AI 助理回答

针对您在使用Keyboard Extension时需要实现类似popView功能的需求,特别是希望在长按按钮时弹出更多选项(如图示所示),这里有一些建议帮助您直接在Swift环境下实现这一功能,而无需引入Objective-C库或桥接头文件。

  1. 长按手势识别器

    • 首先,为您的自定义键盘按钮添加UILongPressGestureRecognizer。这将允许您检测用户的长按操作。
    let longPressGesture = UILongPressGestureRecognizer(target: self, action: #selector(handleLongPress))
    button.addGestureRecognizer(longPressGesture)
    longPressGesture.minimumPressDuration = 0.5 // 长按时长阈值,可根据需求调整
    
  2. 处理长按事件

    • 实现handleLongPress方法来响应长按手势。
    @objc func handleLongPress(_ gestureRecognizer: UILongPressGestureRecognizer) {
       if gestureRecognizer.state == .began {
           // 长按开始,显示popUp视图
           showPopupView()
       } else if gestureRecognizer.state == .ended || gestureRecognizer.state == .cancelled {
           // 长按结束或取消,隐藏popUp视图
           hidePopupView()
       }
    }
    
  3. 自定义弹出视图(Popup View)

    • 创建一个自定义的UIView作为弹出内容,包含您想要展示的更多按键或其他元素。
    • 使用UIPresentationController或简单的UIView.animate来实现弹出视图的动画效果和位置布局。
  4. 管理弹出视图的显示与隐藏

    • showPopupView方法中设置并展示弹出视图,确保其位置适配于键盘环境且不影响用户输入。
    • hidePopupView方法中负责移除或隐藏该视图。

通过上述步骤,您可以在不依赖外部Objective-C库的情况下,在Swift项目中的Keyboard Extension里实现长按弹出额外按键的功能。这种方法不仅保持了项目的纯净性,也充分利用了Swift和UIKit的原生能力。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答地址: