助理编辑器显示的不同“ViewController.swift”文件比主编辑显示的文件?

时间:2016-08-14 21:22:59

标签: xcode

“ViewController.swift”的 Assistant Editor 中显示的源代码与“ViewController.swift”的 Main Editor 中显示的源代码不同。

Main Editor中的“ViewController.swift”:

//  ViewController.swift
//  FoodTracker

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {
    // MARK: Properties
    @IBOutlet weak var nameTextField: UITextField!
    @IBOutlet weak var mealNameLabel: UILabel!
    @IBOutlet weak var mainButton: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        nameTextField.delegate = self
    }

    // MARK: UITextFieldDelegate
    func textFieldShouldReturn(textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }

    func textFieldDidEndEditing(textField: UITextField) {
        mealNameLabel.text = textField.text
    }

    // MARK: Actions
    @IBAction func setDefaultLabelText(sender: UIButton) {
        mealNameLabel.text = "DEFAULT text"
        // mainButton.tintColor = UIColor.darkTextColor()    
    } 
}

Assistant Editor中的“ViewController.swift”:

//
//  ViewController.swift
//  FoodTracker
import UIKit

internal class ViewController : UIViewController, UITextFieldDelegate {

    @IBOutlet weak internal var nameTextField: UITextField!
    @IBOutlet weak internal var mealNameLabel: UILabel!
    @IBOutlet weak var mainButton: UIButton!

    override internal func viewDidLoad()

    internal func textFieldShouldReturn(textField: UITextField) -> <<error type>>

    internal func textFieldDidEndEditing(textField: UITextField) -> <<error type>>

    @IBAction internal func setDefaultLabelText(sender: UIButton) -> <<error type>>
}

因此,这些是完全不同的不同文件,但具有相同的名称。 Assistant Editor中的那个是接口,而Main Editor中显示的文件是接口的实现,对吗?

这看起来有点奇怪,但界面和实现类有相同的名称?当我在Xcode工作时,我需要知道有时两个文件(通常是?)具有相同的名称?

4 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。我无法弄清楚为什么会出现这个&#34;内部课程&#34;文件。

我设法让它显示正确的关联文件。为此,请单击关联的编辑器图标,即两个圆圈。然后在显示的窗口中,点击&#39; +&#39;。出现的新窗口应该包含正确的代码。然后关闭旧窗口,你应该留下正确的窗口。该项目的其余部分似乎现在可以修复。

答案 1 :(得分:1)

(Swift 4.2)我也遇到了同样的问题。每当我在助理编辑器中时,我的ViewController都被标记为“内部”,并且无法对其进行任何编辑。上面的解决方案对我不起作用,但是它们使我走上了正确的道路。显然,我在某种形式的重复文件中,而不在所需的ViewController中。要解决此问题,只需通过助手编辑器顶部的控件导航到正确的文件即可。

enter image description here

enter image description here

答案 2 :(得分:0)

我在Xcode 9.2,Swift 4中找到了这个,但它可能在其他版本中。

在Xcode中,选项键按下,将鼠标悬停在&#39; func&#39;或另一个描述范围的关键字,用蓝色括号显示范围。

然后在触控板上点击两个手指,在代码中的同一点自动打开一个助手编辑器。我经常去我的代码中的其他地方,但想要打开一个窗口,保持原样。这个技巧就是这样。

enter image description here

(确保您的触控板设置为“辅助点按”是用两根手指敲击。)

答案 3 :(得分:0)

我已经在时间位置1:31的视频youtube.com/watch?v=wPAUKhlmW1M上看到了解决方案-如果我错了,请纠正

Changing custom class from default viewcontroller