Ошибка Swift, UIMenuItem для UIview/UIlabel для копирования

У меня возникла проблема с поиском UIview/Casting из UImenuItem и UILongPressGestureRecognizer. Я вижу кнопку копирования, но как только я нажимаю, у меня возникает ошибка приведения.

Ниже мой код

ViewDidLoad

 let copyLongPress = UILongPressGestureRecognizer(target: self, action: #selector(OfficeMapController.handleLongPress(_:)))

 self.addressView.addGestureRecognizer(copyLongPress)



   func handleLongPress(longPressView :UILongPressGestureRecognizer) {
    becomeFirstResponder()
    let menu = UIMenuController.sharedMenuController()
    let copyItem = UIMenuItem(title: "Copy", action:  #selector(OfficeMapController.copyText))
           menu.menuItems = [copyItem]

    menu.setTargetRect(CGRectMake(50, 50, 50, 50), inView: longPressView.view!)
    menu.setMenuVisible(true, animated: true)


}
  override func canBecomeFirstResponder() -> Bool {
    return true
}

  func copyText(sender: UILongPressGestureRecognizer)
{
    let searchlbl = sender.view! as UIView
    print(searchlbl)
    //Than Label Value code for Copy

}
 override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
    // You need to only return true for the actions you want, otherwise you get the whole range of
    //  iOS actions. You can see this by just removing the if statement here.

    if action == #selector(OfficeMapController.copyText) {

        return true
    }
    return false
}

ОШИБКА НИЖЕ

  2016-05-20 16:59:40.428 [2732:1548168] -[UIMenuController view]:     unrecognized selector sent to instance 0x155507820
 2016-05-20 16:59:40.429 [2732:1548168] *** Terminating app due to uncaught    exception 'NSInvalidArgumentException', reason: '-[UIMenuController view]:    unrecognized selector sent to instance 0x155507820'
  *** First throw call stack:
  (0x180c3ae38 0x18029ff80 0x180c41ccc 0x180c3ec74 0x180b3cd1c 0x100183dbc    0x100183f10 0x18634638c 0x18634574c 0x181602628 0x180bf181c 0x180bf14c0   0x180beebd4 0x180b18d10 0x182400088 0x185dedf70 0x10019caa0 0x1806b68b8)
  libc++abi.dylib: terminating with uncaught exception of type NSException

Может ли кто-нибудь помочь мне найти решения для ниже?


person dhaval shah    schedule 20.05.2016    source источник
comment
вы добавляете долгое нажатие на webView или что??   -  person Rahul Shirphule    schedule 20.05.2016
comment
@RahulShirphule, нет, это простой UIView   -  person dhaval shah    schedule 20.05.2016
comment
На самом деле я не знаю, как вы копируете из UIView, потому что, насколько я понимаю, вы не можете копировать контент из UIView... для этого вам нужно иметь текстовое/веб-просмотр и т. д., которые будут поддерживать функции выбора и копирования..!   -  person Rahul Shirphule    schedule 20.05.2016
comment
вот пример ссылки, которая копирует текст из webView `hackingwithswift.com/example-code/uikit/`   -  person Rahul Shirphule    schedule 20.05.2016
comment
@RahulShirphule, мы можем сделать это из UIlabel? Еще одна вещь, я не могу открыть вашу ссылку   -  person dhaval shah    schedule 20.05.2016
comment
хорошо, я редактирую свой комментарий, и нет, вы не можете скопировать его и для UILabel... см. это опубликовать   -  person Rahul Shirphule    schedule 20.05.2016
comment
пожалуйста, проголосуйте, если это поможет вам ..!!   -  person Rahul Shirphule    schedule 20.05.2016
comment
Приятель, это каким-то образом. Я вижу некоторые ответы в Objective C, но трудно найти ответы в Swift. stackoverflow.com/ вопросы/1246198/   -  person dhaval shah    schedule 20.05.2016
comment
Мне просто интересно, как это возможно со Swift?   -  person dhaval shah    schedule 20.05.2016


Ответы (1)


Посмотрите некоторые учебные пособия и проект GitHub ниже.

  1. Быстрое руководство по копируемым этикеткам

  2. GitHub CopyLabel Class swift

И если вы хотите использовать существующий код Objective C в коде Swift, используйте этот сайт для преобразования Цель c быстрым. это хорошая работа.

Надеюсь поможет :)

person Rahul Shirphule    schedule 20.05.2016