2016-11-28 5 views
0

iOS 10. Swift 3Отключение некоторых действий UITextView по редактируемому тексту

Я поместил это в свой класс с помощью UITextView. Казалось, что это лучший ответ для удаления некоторых функций во всплывающем меню. Первоначально у меня была проблема с этим сбоем, и я принял и проголосовал за ответ на этот вопрос как правильный ... но на дальнейшее тестирование. Я нахожу, что код просто не работает должным образом.

К сожалению, Он не имеет значения, абсолютно ничего !! за исключением компиляции, похоже, улавливая опции меню и, чем выполнять их, даже если я пытаюсь их игнорировать.

Кажется, он работал в объективе C, насколько я могу сказать в других сообщениях SO, но не в Swift? Кто-нибудь смог получить рабочую версию в Swift, которая выглядит так, возможно, с некоторым тонким изменением кода, которое я здесь отсутствует.

override public func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool { 
    if (action == #selector(cut)) { 
     return false 
    } 
    return super.canPerformAction(action, withSender: sender) 
} 
+0

Вам необходимо показать полную ошибку. Вы оставили все важные части сообщения об ошибке. – rmaddy

ответ

1

Вам необходимо немного реорганизовать свою реализацию. Оно должно быть:

override public func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool { 
    if (action == #selector(delete)) { 
     return false 
    } else { 
     return super.canPerformAction(action, withSender: sender) 
    } 
} 

Как было это, вы не обращая внимания на результат super.canPerformAction и всегда возвращает истину. Это плохо, потому что ваш класс не отвечает на каждый отдельный селектор.

+0

Нет, я стою исправлено. Это не сбой, и он тоже не работает :) кажется, фиксирует действие в порядке, но не влияет на результат. Совпадение действий не работает вообще, как кажется. – user3069232

Смежные вопросы