在文本视图中长按url时控制显示的操作表

时间:2017-02-15 10:52:06

标签: ios objective-c uitextview

我有一个textview,其中包含属性 - >可选择:是和可编辑:否。 为了打开用textview编写的URL,我使用了

- (BOOL)textView:(UITextView )textView shouldInteractWithURL:(NSURL )URL inRange:(NSRange)characterRange 

委托文本视图的方法,似乎工作正常。

问题是,当用户长按文本视图中的链接时,会弹出一个操作表,这是默认行为。我想控制该行动表。

请提出建议。

enter image description here

尝试过使用ActionSheet委托,但没有用。

1 个答案:

答案 0 :(得分:1)

<强> Swift4

只需在false中返回-shouldInteractWith,但如果您需要,则必须自行处理互动。

func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool 
{    
    print(String(format: "%@", URL as CVarArg))

    let alerSheet = UIAlertController.init(title: nil, message: nil, preferredStyle: .actionSheet)

    alerSheet.addAction(UIAlertAction.init(title: "Copy", style: .default, handler: { (action) in
        print("copy action")
    }))

    alerSheet.addAction(UIAlertAction.init(title: "Other", style: .default, handler: { (action) in
        print("other action")
    }))

    alerSheet.addAction(UIAlertAction.init(title: "Cancel", style: .cancel, handler: { (action) in
        print("cancel action")
    }))
    self.present(alerSheet, animated: true, completion: nil)

    return false
}