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

3

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()    
    } 
}

辅助编辑器中的"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>>
}

因此,这些是完全不同的文件,但具有相同的名称。在助理编辑器中显示的是接口,而在主要编辑器中显示的是接口的实现,对吗?

这似乎有点奇怪,但接口和实现类具有相同的名称?当我在Xcode中工作时,我需要注意有时两个文件可以(经常?)拥有相同的名称?


4个回答

5

我遇到了同样的问题。我不知道为什么它显示这个"internal class"文件。

我成功地让它显示正确的关联文件。要做到这一点,点击关联编辑器图标,即两个圆圈。然后,在弹出的窗口中,点击“+”。新窗口应该有正确的代码。然后关闭旧窗口,你应该看到正确的窗口。现在项目的其余部分似乎已经解决了。


1
(Swift 4.2)我刚遇到了同样的问题。每当我在助手编辑器中时,我的ViewController被标记为内部的,我无法对其进行任何编辑。上述解决方案对我没有用,但它们让我找到了正确的线索。显然,我在某种重复的文件中,而不是我需要的ViewController中。通过助手编辑器顶部的控件导航到正确的文件即可解决该问题。

enter image description here

enter image description here


好答案!让我加一点细节。选择“自动”应该会显示您的 ViewController 代码。打开助手编辑器时默认选择的文件是 ViewController 生成的接口(您看到内部变量的文件)。选择“自动”将避免您每次想要链接出口时手动导航到该文件的麻烦。 - Ferdz

1
我发现这个技巧适用于Xcode 9.2、Swift 4以及其他版本。
在Xcode中,按住选项键,在“func”或其他描述范围的关键字上悬停鼠标,即可显示带有蓝色括号的范围。
然后,在触控板上用两个手指轻敲,即可自动在代码相同位置打开一个助理编辑器。我经常要去代码的其他地方,但想要打开一个窗口,保持我刚才所在的位置。这个技巧正是解决这个问题的。

enter image description here

(确保您的触控板设置为“二次点击”是用两个手指轻敲。)

0

我在视频youtube.com/watch?v=wPAUKhlmW1M的1:31处看到了可能是解决方案 - 如果我错了,请纠正

Changing custom class from default viewcontroller


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接