我在我的應用程序中使用swift開發了一個自定義鍵盤擴展。他們的鍵盤工作正常。我想在長按鍵盤按鈕(如默認iOS鍵盤)時添加顯示帶額外字符的彈出式功能。事情是這樣的:斯威夫特自定義鍵盤 - 顯示額外的字母彈出鍵盤長按?
我搜索了很多,但大部分都是未回答的回答是那些obj中-C。我對Obj-C瞭解不多,而且對於快速編程也很新穎。
任何幫助將非常感激。
我在我的應用程序中使用swift開發了一個自定義鍵盤擴展。他們的鍵盤工作正常。我想在長按鍵盤按鈕(如默認iOS鍵盤)時添加顯示帶額外字符的彈出式功能。事情是這樣的:斯威夫特自定義鍵盤 - 顯示額外的字母彈出鍵盤長按?
我搜索了很多,但大部分都是未回答的回答是那些obj中-C。我對Obj-C瞭解不多,而且對於快速編程也很新穎。
任何幫助將非常感激。
您應該使用LongPress識別器。請檢查此更多細節。 Long press delete key of a custom keyboard in swift
我不是在尋找如何使用'LongPressGestureRecogniser'。我正在尋找如何顯示額外字符的彈出窗口。 – bhakti123
這是非常簡單的遵循這個步驟實現這一任務
capitalization
略低於Min font size
capitalization
作爲詞keyboard type
現在構建和運行,並檢查與信s
,e
等這將幫助你
1.在您查看添加按鈕
(這只是給你看)
let btn: UIButton=UIButton(frame: CGRect(x: 5, y: 70, width: 30, height: 30))
btn.setTitle("A", for: .normal)
btn.setTitleColor(UIColor.black, for: .normal);
self.view.addSubview(btn)
2.增加長PressGesture在您的按鈕
let longGesture = UILongPressGestureRecognizer(target: self, action: #selector(longPress(sender:)))
longGesture.minimumPressDuration = 1.2
btn.addGestureRecognizer(longGesture)
3.拉手長按手勢,
您可以添加PopUpView並添加它的一些按鈕,
⚠️注意:您有多個按鈕,所以你必須檢查從CGPoint 哪個按鈕它是在
func longPress(sender: Any) {
let longPressGesture = sender as! UILongPressGestureRecognizer
//Only run this code When State Begain
if longPressGesture.state != UIGestureRecognizerState.Began {
return
}
// if PopUpView is Already in added than remove and than add
if let checkView = self.view.viewWithTag(1001) as? UIView {
// remove popView
popUpView .removeFromSuperview()
}
let tapLocation = longPressGesture.location(in: self.view)
popUpView=UIView(frame: CGRect(x: tapLocation.x-10, y: tapLocation.y-65, width: 150, height: 60))
popUpView.backgroundColor=UIColor.orange
popUpView.layer.cornerRadius=5
popUpView.layer.borderWidth=2
popUpView.tag=1001
popUpView.layer.borderColor=UIColor.black.cgColor
let btn0: UIButton=UIButton(frame: CGRect(x: 5, y: 5, width: 30, height: 30))
btn0.setTitle("A1", for: .normal)
btn0.setTitleColor(UIColor.black, for: .normal);
btn0.layer.borderWidth=0.5
btn0.layer.borderColor=UIColor.lightGray.cgColor
popUpView.addSubview(btn0)
let btn1: UIButton=UIButton(frame: CGRect(x: 35, y: 5, width: 30, height: 30))
btn1.setTitle("A2", for: .normal)
btn1.setTitleColor(UIColor.black, for: .normal);
btn1.layer.borderWidth=0.5
btn1.layer.borderColor=UIColor.lightGray.cgColor
popUpView.addSubview(btn1)
let btn2: UIButton=UIButton(frame: CGRect(x: 70, y: 5, width: 30, height: 30))
btn2.setTitle("A2", for: .normal)
btn2.setTitleColor(UIColor.black, for: .normal);
btn2.layer.borderWidth=0.5
btn2.layer.borderColor=UIColor.lightGray.cgColor
popUpView.addSubview(btn2)
btn0.addTarget(self, action: #selector(self.buttonAction(sender:)),
for: UIControlEvents.touchUpInside)
btn1.addTarget(self, action: #selector(self.buttonAction(sender:)),
for: UIControlEvents.touchUpInside)
btn2.addTarget(self, action: #selector(self.buttonAction(sender:)),
for: UIControlEvents.touchUpInside)
self.view.addSubview(popUpView)
}
竊聽4。處理額外的按鈕按下
(做你的東西在這裏添加從的SuperView刪除popUpView)
func buttonAction(sender: Any) {
// Do your Stuff Here
//Than remove popView
popUpView .removeFromSuperview()
}
結果✅
✅注意:您可以使用
UIBezierPath
繪製PopUpView的自定義形狀
我希望這會幫助你。
您使用自定義鍵盤視圖或使用defuilt鍵盤? – Dhiru
我正在使用自定義鍵盤擴展 – bhakti123
答案更新與錯誤修復,請檢查,讓我知道如果這解決了你的porob @ bhakti123 – Dhiru