私はXcodeの8に更新し、今私は私のプロジェクトタイプ「NSObjectの」にはメンバー「コピー」
タイプ「NSObjectの」はメンバー「コピー」を持っていないで、エラーを取得していますがありません。
のXcodeをアップグレードする前に、私はこのエラーを取得していませんでした。注:私はまだスウィフト2.3を使用しています。私はUILabelをサブクラス化し、ユーザーが長押しのラベルからテキストをコピーできるようにしました。以下は私のコードです。エラーがライン上で発生します。ここでは
if action == #selector(NSObject.copy(_:))
は完全なコードです:
class MCCopyableLabel: UILabel {
override init(frame: CGRect) {
super.init(frame: frame)
sharedInit()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
sharedInit()
}
func sharedInit() {
userInteractionEnabled = true
addGestureRecognizer(UILongPressGestureRecognizer(target: self, action: #selector(MCCopyableLabel.showMenu(_:))))
}
func showMenu(sender: AnyObject?) {
becomeFirstResponder()
let menu = UIMenuController.sharedMenuController()
if !menu.menuVisible {
menu.setTargetRect(bounds, inView: self)
menu.setMenuVisible(true, animated: true)
}
}
override func copy(sender: AnyObject?) {
let board = UIPasteboard.generalPasteboard()
board.string = text
let menu = UIMenuController.sharedMenuController()
menu.setMenuVisible(false, animated: true)
}
override func canBecomeFirstResponder() -> Bool {
return true
}
override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
if action == #selector(NSObject.copy(_:)) {
return true
}
return false
}
}
それはおそらく 'UIResponder.copy(_ :)'、または単に 'コピー(_ :)'固定おかげ@dan – dan
する必要がありますそれ!申し訳ありませんが – chickenparm