2016-11-28 5 views
0

iOS 10. Swift 3編集可能なテキストの一部のUITextViewアクションを無効にする

私はこれを私のクラスにUITextViewで入れました。ポップアップメニューのいくつかの機能を削除するための最良の答えと思われます。当初は問題が発生していましたが、私は同意し、その質問に対する答えを正しいものとして投票しました...しかし、さらなるテストでは、コードが意図した通りに機能しないことがわかりました。

残念ながらそれは何もしません、絶対に何もありません!私はそれらを無視しようとしても、メニューオプションをキャッチして、とにかくやっているように見える。

これは、私が他のSOの投稿で言うことができる限り、客観的なCで動作するように思われますが、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

実装を少し再編成する必要があります。それは次のようになります。あなたはそれを持っていたとして、あなたはsuper.canPerformActionの結果を無視し、常にtrueを返した

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

。クラスがすべての単一のセレクタに応答しないため、これは悪いことです。

+0

いいえ、私は訂正します。それはクラッシュしないし、それも動作しません:)は、アクションを正常にキャプチャするようだが、結果には影響しません。アクションマッチングはまったく動作しません。 – user3069232

関連する問題