2017-06-02 22 views
0

我可以删除,剪切,复制,粘贴,选择,使用这种如何从TextView的斯威夫特删除查找和分享3

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

所有选择,但我不能删除查找&分享

enter image description here

任何人都可以请建议我如何删除它?

回答

2
// Make sure 
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool { 
    if action == #selector(select(_:)) 
    { 
     return true 
    } else { 
     return false 
    } 
} 
+0

我不想禁用所有......我只是想能够选择... –

+1

如果行动== #selector(选择(_ :)) { 还真 }其他{FALSE} – karthik

+0

使用此条件 – karthik

2

如果你真的不想允许任何操作,为什么你要特别检查它们中的每一个?只需在您的方法中返回false。否则,你可以放置一个断点,看你要调用的“行动”是什么,并添加另一个验证它

而结果,与2在要删除强调:

BlahTextView :: canPerformAction:切: BlahTextView :: canPerformAction:副本: BlahTextView :: canPerformAction:选择: BlahTextView :: canPerformAction:全选: BlahTextView :: canPerformAction:贴: BlahTextView :: canPerformAction:删除: BlahTextView :: canPerformAction:_promptForReplace: BlahTextView :: canPerformAction:_transliterateChinese: BlahTextView :: canPerformAction:_showTextStyleOptions: BlahTextView :: canPerformAction:_lookup: BlahTextView :: canPerformAction:_define: BlahTextView :: canPerformAction:_addShortcut: BlahTextView :: canPerformAction:_accessibilitySpeak: BlahTextView :: canPerformAction:_accessibilitySpeakLanguageSelection: BlahTextView :: canPerformAction:_accessibilityPauseSpeaking: BlahTextView :: canPerformAction:_share: BlahTextView :: canPerformAction:makeTextW ritingDirectionRightToLeft: BlahTextView :: canPerformAction:makeTextWritingDirectionLeftToRight:

然后你就可以这样做:

override public func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool { 
    if action == #selector(copy(_:)) || 
     action == #selector(paste(_:)) || 
     action == #selector(select(_:)) || 
     action == #selector(selectAll(_:)) || 
     action == #selector(cut(_:)) || 
     action == Selector(("_lookup:")) || 
     action == Selector(("_share:")) 
    { 
     return false 
    } 
    return super.canPerformAction(action, withSender: sender) 
} 

替代语法是必需的,因为这些方法没有公开声明,你会得到一个编译错误,如果例如,您使用#selector(份额( :))。要

+0

抬头不被删除 –

+0

也试过了。查找不会被删除。它在文档中解释说其他组件可以说是正确的,这将覆盖这里完成的内容。 https://developer.apple.com/documentation/uikit/uiresponder/1621105-canperformaction –

1

正如你在一个答案的评论中提及到刚启用select那么你为什么不比较select而在其他情况下,返回true它和false

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