首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只允许从UITextField中选择和复制不能工作的

只允许从UITextField中选择和复制不能工作的
EN

Stack Overflow用户
提问于 2019-03-22 17:55:25
回答 1查看 317关注 0票数 0

我希望我的UITextField只允许选择、复制和共享。以下是目前为止的情况。

代码语言:javascript
复制
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
    print("\(action.description) returns \(action == #selector(copy(_:)) || action == #selector(selectAll(_:)) || action == Selector(("_share:")) )" )
    
    return action == #selector(copy(_:)) || action == #selector(selectAll(_:)) || action == Selector(("_share:"))
}

不幸的是这不起作用。当我做长按压或双击时,我得到以下选项:

代码语言:javascript
复制
 copy, select, select all, paste, share

打印输出

剪切:返回假 复制:返回true 删除:返回false _promptForReplace:返回false _transliterateChinese:返回false _insertDrawing:返回false _showTextStyleOptions:返回false _lookup:返回false _define:返回false _addShortcut:返回false _accessibilitySpeak:返回false _accessibilitySpeakLanguageSelection:返回false _accessibilityPauseSpeaking:返回false _share:返回true makeTextWritingDirectionRightToLeft:返回false makeTextWritingDirectionLeftToRight:返回false

如何摆脱pasteselect

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-22 18:10:59

如果你从来不允许输入,听起来你真的应该使用一个UILabel,用你想要的动作添加点击/长按手势。

但是如果你还想做的话..。

要实现粘贴,您需要子类UITextField和重写UIPasteConfigurationSupporting的函数。

代码语言:javascript
复制
class UnpasteableTextField: UITextField {

    override func canPaste(_ itemProviders: [NSItemProvider]) -> Bool {
        return false
    }
}

至于选择,您可能必须重写UITextInputUIResponderStandardEditActions中的某些内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55305321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档