2017-07-25 27 views
0

我正尝试使用轻击手势识别器在点击图像时打开URL。 代码成功生成,但是当我尝试挖掘图像,它终止并显示获取线程1:试图使用轻击手势识别器打开url时的信号sigabrt

类型NSException(LLDB)的未捕获的异常

在控制台

终止。控制台还显示

[Hello.ViewController clickToOpen]:无法识别的选择器发送到实例。

而且还有一个

线程1:信号SIGABRT

在管线类的AppDelegate

:UIResponder,UIApplicationDelegate在AppDelegate.swift {”

的视图控制器代码如下:

// 
// ViewController.swift 
// Hello 
// 

import UIKit 

class ViewController: UIViewController, UITextFieldDelegate { 

//MARK: Outlets 
@IBOutlet weak var nameTextField: UITextField! 
@IBOutlet weak var helloName: UILabel! 
@IBOutlet weak var imageToTap: UIImageView! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    nameTextField.delegate = self 

    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: Selector(("clickToOpen"))) 
    self.imageToTap.addGestureRecognizer(tapGestureRecognizer) 
    self.imageToTap.isUserInteractionEnabled = true 
} 

//MARK: UITextFieldDelegate 
func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
    // Hide the keyboard 
    textField.resignFirstResponder() 

    return true 
} 
func textFieldDidEndEditing(_ textField: UITextField) { 
    helloName.text = "Hello \(textField.text!)" 
    textField.text = "" 
} 

//MARK: Actions 
@IBAction func clearButton(_ sender: UIButton) { 
    helloName.text = "Hello" 
} 
@IBAction func enterButton(_ sender: UIButton) { 
    nameTextField.resignFirstResponder() 
} 
@IBAction func clickToOpen(_ sender: UITapGestureRecognizer) { 
    if let url = NSURL(string: "http://www.google.com/") { 
     UIApplication.shared.openURL(url as URL) 
    } 

} 

} 

回答

0

更换水龙头动作代码&从SWIFT 3.x中,你需要使用#selector

let tapGesture = UITapGestureRecognizer.init(target: self, action: #selector(clickToOpen)) 
    self.view.addGestureRecognizer(tapGesture) 
+0

谢谢你,现在的工作! –

相关问题