【发布时间】:2016-03-18 14:15:55
【问题描述】:
我有两个不同的 NSViews。
viewA 由 ViewA.swift
viewB 控制> 由 ViewB.swift 控制
我想将 viewB 中的 textField (NSTextField) 从 viewA强>。
我通过从 viewA 创建一个 viewB 的实例来更改它,但是我得到一个错误
这是我在 viewA 中创建实例的方式:
let myViewB = ViewB()
myViewB.changeValue = myString
在 viewB 我声明:
var myString = "" {
didSet {
myNSTextField.stringValue(myString)
}
}
这是我在更改 NSTextField 值时遇到的错误:
在展开可选值时意外发现 nil
更新:
文件 ViewB.swift
class ViewB: NSView {
...
@IBOutlet weak var widthTextField: NSTextField!
...
}
文件 ViewA.swift
let myViewB = ViewB()
class ViewA: NSView {
...
if *statement* {
....
myViewB.widthTextField.stringValue("try") // <- here i get the error
....
}
...
}
【问题讨论】:
-
我最近在这里回答了这样一个问题:stackoverflow.com/questions/35994684/…
-
所以我应该在课堂之外使用
let myViewB = ChooseEdit()。但我得到了同样的错误。 -
不,您应该生成一个属于您的 CLASS 对象(类似于
var myViewB = viewB()),然后您可以通过var textfield = myviewB.myNSTextField访问 viewB 在 a 类中的属性 -
谢谢你的回答,我就是这样做的。但它仍然给我错误
-
你能更新问题并添加你现在拥有的所有代码吗?
标签: swift macos nsview nstextfield