2016-07-20 6 views
4

りんごの "コピー"、 "貼り付け"のような難しいポップを作成しようとしています。私はそれを行う方法がわからない。iOSはUITableViewのポップオーバー(UIMenuController)のような "コピー貼り付け"を作成します

enter image description here

サードパーティ製のlibにありますか、それはネイティブコンポーネントですか?

+0

可能な複製を実装することによってこの問題を解決するために管理質問/ 2487844 /簡単な方法 - 表示 - コピー - ポップアップ - オン - uitableviewcellsのようなアドレスブックのAP? – caughtinflux

+0

ラベルに使用しますか? –

+0

@SagarShirbhateはテーブルビューのセルでそれを使用したい – spaceMonkey

答えて

1

それが誰を助けている場合、探すためのキーワードは「UIMenuController」である

私は最終的にhttp://stackoverflow.com/のカスタムUITableViewCellの

override func setSelected(_ selected: Bool, animated: Bool) { 

     super.setSelected(selected, animated: animated) 
     let showPasswordItem = UIMenuItem(title: "Show Password", action: #selector(showPass(_:))) 
     let copyUserNameItem = UIMenuItem(title: "Copy Username", action: #selector(copyUsername(_:))) 
     let copyPasswordItem = UIMenuItem(title: "Copy Password", action: #selector(copyPass(_:))) 
     self.isPasswordShowing = !self.password.isSecureTextEntry 
     UIMenuController.shared.menuItems?.removeAll() 
     UIMenuController.shared.menuItems = [copyPasswordItem,copyUserNameItem,showPasswordItem,hidePasswordItem] 
     UIMenuController.shared.update() 

     if selected { 
      self.becomeFirstResponder() 
      let menu = UIMenuController.shared 
      menu.setTargetRect(self.contentView.frame, in: self.contentView.superview!) 
      menu.setMenuVisible(true, animated: true) 
     } 
    } 

override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool { 

    return action == #selector(showPass(_:)) || action == #selector(copyUsername(_:)) || action == #selector(copyPass(_:)) 

} 

override var canBecomeFirstResponder : Bool { 
    return true 
} 

func showPass(_ send:AnyObject){ 
    self.password.isSecureTextEntry = false 
    self.isPasswordShowing = true 
} 
func copyUsername(_ send:AnyObject){ 
    UIPasteboard.general.string = self.username.text 
} 
func copyPass(_ send:AnyObject){ 
    UIPasteboard.general.string = self.password.text 
} 
func hidePass(_ send:AnyObject){ 
    self.password.isSecureTextEntry = true 
    self.isPasswordShowing = false 
} 
関連する問題