【发布时间】:2015-07-07 14:42:31
【问题描述】:
我一直在努力用 Swift 检测 UITextView 上的点击。
我的 UITextViews 在一个表格中,我必须能够检测到链接并按下它们,这些链接的长度是未知的。
此外,如果我点击单元格,我不点击链接,我想在我的导航控制器堆栈上推送一个新的 UIViewController。
我尝试创建自己的 textview 来覆盖 touchesCancelled,但没有成功。它检测到不被视为在真实设备上点击的取消。
模拟器中没有出现这个bug,但是在真机上好像打不开,只能长按了。
class LinkTextView: UITextView {
override func touchesCancelled(touches: Set<NSObject>!, withEvent event: UIEvent!) {
self.textViewWasTapped(self)
}
}
我尝试直接添加手势识别器。我在那里也没有任何成功。它根本不调用手势识别器。
我将 UIGestureReconizer 委托添加到我的 UIViewController 和我的那些行中
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var singleTap : UIGestureRecognizer = UIGestureRecognizer(target: self, action: "tapTextView:")
singleTap.delegate = self
cell.mTextOutlet.attributedText = myMutableString
cell.mTextOutlet.addGestureRecognizer(singleTap)
在我的 LinkTextView 类中:
class LinkTextView: UITextView {
func tapTextView(stapGesture: UIGestureRecognizer){
println("TAPPING1")
}
}
我查看了论坛并找到了这个帖子:post。它建议使用CHHLinkTextView。我尝试使用它,但我想要的是自动检测链接,正常的 uitextview 实际上是这样做的。
我确实尝试使用界面生成器中的复选框来解析带有 CHHLinkTextView 的链接,但它不起作用。我在文档中没有看到任何暗示可以这样做的内容。
我应该如何进行?
【问题讨论】:
标签: ios swift uitextview uigesturerecognizer