如何实现我自己的selectAll:对于没有子类的UITextView呢?

Posted

技术标签:

【中文标题】如何实现我自己的selectAll:对于没有子类的UITextView呢?【英文标题】:How to implement my own selectAll: for UITextView without subclass it? 【发布时间】:2015-12-01 10:56:24 【问题描述】:

如何在不继承 UITextView 的情况下实现我自己的 selectAll:?我不想继承 UITextView 的子类,因为如果这样做,我需要更改代码 (.m/.xib) 中需要使用此子类的每个地方。

我曾想过(错误地!)也许我可以将 UITextView 操作如 selectAll: 连接到我的代码(我确实在我的 h 文件中声明 - (IBAction)select:(id)sender)?我将操作拖到 File's Owner 或 .h/.m 文件,没有任何反应。

现在我知道他们收到了行动,所以我不能这样做。那怎么办?

【问题讨论】:

这不是一个动作。这是一个接受的动作。你真正想做什么? 我想用我自己的实现替换默认的 selectAll: 操作。但我不想继承 UITextView 来做到这一点。我真的希望这应该是一个简单的动作。 这很愚蠢。当然,您将不得不子类化。我告诉过你:这不是一个动作。这是一个接受的动作。它不是由文本视图发出的。它被发送到 文本视图,作为传递响应者链的 nil 目标操作。 【参考方案1】:

您无法连接它,因为没有这样的操作。您正在错误地阅读连接检查器。屏幕截图中的内容不是动作。 selectAll: 不是一个动作。这是一个收到动作。它不是由文本视图发出的。它被发送到 文本视图,作为传递响应者链的 nil 目标操作。要在收到此操作时更改或添加到文本视图行为,您可以继承 UITextView。这很容易做到。

【讨论】:

以上是关于如何实现我自己的selectAll:对于没有子类的UITextView呢?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Webview 中实现自己的 SelectAll、Cut、Copy、Paste

如何在 UIviewController 子类中禁用 UIMenuControll(剪切、复制、粘贴、全选、删除)?

如何在extjs中使用内存代理执行checkboxmodel的selectAll操作

又见mybaits之selectall源码解析

又见mybaits之selectall源码解析

Java 面向对象继承部分