有没有办法使用Swift以编程方式完全创建NSTextFields?我正在创建一个我不想连接到故事板的mac应用程序,但除了制作IBOutlet之外,我无法弄清楚创建NSTextField的任何方法。顺便说一下,我是编程的新手,很抱歉我缺乏技术语言。
谢谢!
编辑:
这是我到目前为止尝试过的代码:
当我这样做时,我收到错误消息"致命错误:在展开Optional值时意外发现nil。"无论我是否测试SKView或NSView,都会弹出相同的错误消息。如果我尝试将IBOutlet定义为"查看"它告诉我,我无法覆盖存储的属性"查看"。
import Foundation
import Cocoa
import SpriteKit
class SettingsScene: SKScene {
@IBOutlet weak var window: NSWindow!
@IBOutlet weak var test: SKView!
var ballSpeedText = NSTextField(frame: NSMakeRect(20,20,200,40))
override func didMoveToView(view: SKView) {
ballSpeedText.textColor = NSColor.redColor()
ballSpeedText.stringValue = "Test"
test.addSubview(ballSpeedText)
}
如果我尝试不创建任何IBOutlets,只使用视图,我没有收到任何错误,但文本字段没有显示:
import Foundation
import Cocoa
import SpriteKit
class SettingsScene: SKScene {
var ballSpeedText = NSTextField(frame: NSMakeRect(20,20,200,40))
override func didMoveToView(view: SKView) {
ballSpeedText.textColor = NSColor.redColor()
ballSpeedText.stringValue = "Test"
view.addSubview(ballSpeedText)
}
答案 0 :(得分:5)
您可以轻松完成。只需将您的视图连接到插座,然后就可以这样做:
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var window: NSWindow!
@IBOutlet weak var view: NSView!
let myTextField = NSTextField(frame: NSMakeRect(20,20,200,40))
func applicationDidFinishLaunching(aNotification: NSNotification) {
myTextField.textColor = NSColor.redColor()
myTextField.stringValue = "Hello World !!!"
view.addSubview(myTextField)
}
}