在我的应用程序中有UITextView
包含电子邮件地址。当我触摸并按住电子邮件地址,然后动作片弹出,上面有以下按钮:如何在iOS生成的操作表上收听操作
- “新信息”
- “添加到联系人”
- 等
如何在“新消息”按钮上单击执行自定义操作?
在我的应用程序中有UITextView
包含电子邮件地址。当我触摸并按住电子邮件地址,然后动作片弹出,上面有以下按钮:如何在iOS生成的操作表上收听操作
如何在“新消息”按钮上单击执行自定义操作?
你必须设置你的viewController作为actionSheets委托,然后实现
-actionSheet:clickedButtonAtIndex:
然后执行所需的操作。
此代理方法不会调用,因为iOS生成的操作表不是由我的应用程序生成的。 – Ram
首先你实现你的.h文件中UIActionSheetDelegate
然后再去做..
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
// here you can perform new message action
}
else
{
// here you can perform add new contact action
}
}
你需要继承的UITextView并覆盖-setText:
方法。在您的自定义实现中,您需要将UIDataDetector添加到您的子类中。
如果您对NSDataDetector及其实现不熟悉,请参阅TTTAttributedLabel的实现。这是一个相当全面的UILabel替代数据检测和一个非常发达的委托协议。
你可以采用它的很多代码。
我不认为你可以截取这个动作表。正如你提到它是一个OS生成的操作表,所以你不能将任何对象设置为它的委托。您要么保持原样,要么关闭链接检测。 –