6

我在我的應用程序中使用swift開發了一個自定義鍵盤擴展。他們的鍵盤工作正常。我想在長按鍵盤按鈕(如默認iOS鍵盤)時添加顯示帶額外字符的彈出式功能。事情是這樣的:斯威夫特自定義鍵盤 - 顯示額外的字母彈出鍵盤長按?

enter image description here

我搜索了很多,但大部分都是未回答的回答是那些obj中-C。我對Obj-C瞭解不多,而且對於快速編程也很新穎。

我已經看過this,thisthis。但這些幫助不大。

任何幫助將非常感激。

+0

您使用自定義鍵盤視圖或使用defuilt鍵盤? – Dhiru

+0

我正在使用自定義鍵盤擴展 – bhakti123

+0

答案更新與錯誤修復,請檢查,讓我知道如果這解決了你的porob @ bhakti123 – Dhiru

回答

0

這是非常簡單的遵循這個步驟實現這一任務

  • 打開你的主要故事板
  • 選擇文本字段,你要多個信想的展現。從屏幕
  • 滾動起來的右
  • 打開屬性檢查器並查找capitalization略低於Min font size
  • 設置capitalization作爲詞
  • 將所有其他默認主要keyboard type現在構建和運行,並檢查與信se

這將幫助你

+0

我沒有爲其顯示多個字母的特定TextField。正如我在問題中提到的,我正在製作一個自定義鍵盤擴展。這意味着我製作的鍵盤可以在任何應用程序中使用。 – bhakti123

+0

所以你想要的是你自己的鍵盤,並且想要顯示你的圖中顯示的多個字符。如果是,那麼我會盡快回復你的答案。 –

+0

是的。我使用chrome鍵盤擴展功能構建了自己的鍵盤。現在想要實現上面顯示的功能 – bhakti123

1

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() 
     } 

結果

enter image description here

✅注意:您可以使用UIBezierPath繪製PopUpView的自定義形狀

我希望這會幫助你。