我正在使用Keyboard Extension,我需要像当我提到的问题那样的popView之类的功能,我想长按时我可以尝试使用简单的视图,但时这样的话我需要在longPress上使用popUp并使用更多键,例如 https://i.stack.imgur.com /TBLZL.jpg
根据goggle搜索,我发现了一些建议,但没有一个像这样工作 ,并且我发现了Objective c库CYRKeyboardButton,,例如这个库(我不想使用Bridging)。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
针对您在使用Keyboard Extension时需要实现类似popView功能的需求,特别是希望在长按按钮时弹出更多选项(如图示所示),这里有一些建议帮助您直接在Swift环境下实现这一功能,而无需引入Objective-C库或桥接头文件。
长按手势识别器:
let longPressGesture = UILongPressGestureRecognizer(target: self, action: #selector(handleLongPress))
button.addGestureRecognizer(longPressGesture)
longPressGesture.minimumPressDuration = 0.5 // 长按时长阈值,可根据需求调整
处理长按事件:
handleLongPress
方法来响应长按手势。@objc func handleLongPress(_ gestureRecognizer: UILongPressGestureRecognizer) {
if gestureRecognizer.state == .began {
// 长按开始,显示popUp视图
showPopupView()
} else if gestureRecognizer.state == .ended || gestureRecognizer.state == .cancelled {
// 长按结束或取消,隐藏popUp视图
hidePopupView()
}
}
自定义弹出视图(Popup View):
UIPresentationController
或简单的UIView.animate
来实现弹出视图的动画效果和位置布局。管理弹出视图的显示与隐藏:
showPopupView
方法中设置并展示弹出视图,确保其位置适配于键盘环境且不影响用户输入。hidePopupView
方法中负责移除或隐藏该视图。通过上述步骤,您可以在不依赖外部Objective-C库的情况下,在Swift项目中的Keyboard Extension里实现长按弹出额外按键的功能。这种方法不仅保持了项目的纯净性,也充分利用了Swift和UIKit的原生能力。