gpt4 book ai didi

swift - 如何从另一个 NSView (不同的 swift 文件)更改 NSTextField 值

转载 作者:行者123 更新时间:2023-11-30 10:05:46 24 4
gpt4 key购买 nike

我有两个不同的NSView
viewAViewA.swift 控制
viewBViewB.swift 控制
我想将 viewB 中的 textField (NSTextField) 从 更改 View A。

我通过从 viewA 创建 viewB 实例来更改它,但出现错误

以下是我在 viewA 中创建实例的方法:

let myViewB = ViewB()
myViewB.changeValue = myString

viewB中我声明:

var myString = "" {
didSet {
myNSTextField.stringValue(myString)
}
}

这是我更改 NSTextField 值时收到的错误:

unexpectedly found nil while unwrapping an Optional value



更新:

文件 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
....
}
...
}

最佳答案

我终于修好了!我创建一个变量,其中包含将其更改为如下所需的文本:(使用您的测试项目)

在 ViewA 类中

    import Cocoa

var textToSet = "Hello"

class ViewA: NSView {
override func drawRect(dirtyRect: NSRect) {
super.drawRect(dirtyRect)

// Drawing code here.
}

@IBAction func editPressed(sender: AnyObject) {
textToSet = "No"
}

}

在 ViewB 类中

import Cocoa

class ViewB: NSView{

@IBOutlet var myTextField: NSTextField!
override func drawRect(dirtyRect: NSRect) {
super.drawRect(dirtyRect)

myTextField.stringValue = textToSet
// Drawing code here.
}

}

关于swift - 如何从另一个 NSView (不同的 swift 文件)更改 NSTextField 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36086678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com