ios - 对可编辑文本禁用某些 UITextView 操作

标签 ios swift uitextview

iOS 10. swift 3

我用 UITextView 将其放入我的类中。似乎是删除弹出菜单中某些功能的最佳答案。最初遇到崩溃问题,我接受并投票认为该问题的答案是正确的......但在进一步测试时......我发现代码根本无法按预期工作。

不幸的是它实际上什么也没做,绝对什么都没有!!除了编译似乎捕捉菜单选项,而不是无论如何做它们,即使我试图忽略它们。

据我在其他 SO 帖子中所知,它似乎曾经在 Objective 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)
}

最佳答案

您需要稍微重新组织您的实现。应该是:

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 的结果并始终返回 true。这很糟糕,因为您的类不会响应每个选择器。

关于ios - 对可编辑文本禁用某些 UITextView 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40848421/

相关文章:

ios - 将 UIScrollView 连接到 IBOutlet

swift - 为什么我不能在 didSet 上赋值?

ios - UITableViewCell 中的 UITextView,无法取消自动更正

objective-c - iOS UITextView 中的字距调整

ios - UIView动画中初始调整UITextView帧大小时跳转

ios - 删除状态栏文本,如 SWIFT 中的 iOS Gmail 应用程序

ios - 为什么 ubiquityIdentityToken 返回零?

ios - 没有返回值的 block

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

xcode - NSTimer timeInterval 参数不允许变量