我是 Swift 和 Mac 应用程序的新手。
因此,我今天正在编写一个 Mac 应用程序,但经过大量搜索后,我仍然困惑如何从另一个类访问 IBOutlet。
我正在使用 StoryBoard 并且有两个 NSTextFieldpath
mirror
在我的视图控制器中。
我创建了一个自定义类Path.swift
对于第一个 NSTextFieldpath
知道文本何时出现path
已经改变。
class Path: NSTextField, NSTextFieldDelegate
{
override func drawRect(dirtyRect: NSRect)
{
super.drawRect(dirtyRect)
// Drawing code here.
self.delegate = self
}
var current = ""
override func controlTextDidChange(obj: NSNotification)
{
current = self.stringValue
println("Current is \(current)")
}
}
ViewController.swift 中定义了两个出口
class ViewController: NSViewController
{
override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
@IBOutlet weak var path: NSTextField!
@IBOutlet weak var mirror: NSTextField!
}
当用户在第一个 NSTextField 中输入内容时path
,我想要第二个 NSTextFieldmirror
显示相同的字符串path
.
我尝试使用ViewController().mirror.stringValue = current
,但我得到了fatal error: unexpectedly found nil while unwrapping an Optional value
经过大量谷歌搜索后,我知道我创建了一个新的 ViewController 实例,而不是访问当前现有的 ViewController 实例。
所以我的问题是如何访问 IBOutletViewController.swift
from Path.swift
类(如何访问当前存在的 ViewController 实例)。
任何帮助将不胜感激。
提前致谢。