【问题标题】:Only instance methods can be declared @IBAction | XCODE ERROR | Swift 5只能声明实例方法 @IBAction | XCODE 错误 |斯威夫特 5
【发布时间】:2021-02-20 19:52:00
【问题描述】:

这是我的代码不建议删除 IBAction 我是制作浏览器的初学者。我也是 这个程序很新:

import Cocoa
import WebKit
class ViewController: NSViewController, WKNavigationDelegate {



@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
    super.viewDidLoad()
    webView.navigationDelegate = self
    // Do any additional setup after loading the view.
}

override var representedObject: Any? {
    didSet {
    
    }
}




@IBAction func didEnterKeyTapped( sender: NSTextField){
    let urlString = sender.stringValue
guard let url  = URL(string: urlString) else {return}
    let urlRequest = URLRequest(url: url)
    webView.load(urlRequest)
    
    
    @IBAction func didnavigationButtonTapped ( sender: NSSegmentedControl){
        if sender.selectedSegment == 0 {
            webView.goBack()
        }else {
            webView.Forward()
        }
        
        
        
        
    }





func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
    let currentUrl = webView.url?.absoluteString ?? ""
    guard let windowController = view.window?.windowController as? WindowController else {return}
    let textField = windowController.urlTextField
    textField?.stringValue = currentUrl
}

}

}

【问题讨论】:

    标签: xcode cocoa browser swift5 ibaction


    【解决方案1】:

    您在ViewController 类之外声明了@IBActions。 IBAction 必须是类的成员。移动类中的 IBActions 以修复编译器错误。

    您的代码中的另一个问题是您在didEnterKeyTapped IBAction 中声明了didNavigationButtonTapped IBAction。这两个 IBAction 应该是独立的函数,例如:

    @IBAction func didEnterKeyTapped( sender: NSTextField){
        let urlString = sender.stringValue
        
        guard let url  = URL(string: urlString) else {return}
                
        let urlRequest = URLRequest(url: url)
        webView.load(urlRequest)
    }
    
    @IBAction func didnavigationButtonTapped ( sender: NSSegmentedControl) {
        if sender.selectedSegment == 0 {
            webView.goBack()
        }else {
            webView.Forward()
        }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    相关资源
    最近更新 更多