gpt4 book ai didi

swift - 在没有 Storyboard的情况下将 ViewController 添加到应用程序

转载 作者:行者123 更新时间:2023-11-28 06:37:26 25 4
gpt4 key购买 nike

如何在没有 Storyboard的空项目中实现像 viewDidLoad() 这样的函数?

抱歉,初学者问题。我现在已经搜索了几个小时,但仍然无法正常工作。感谢您的帮助!

编辑:
我正在使用 .xib 文件,只是没有 .storyboard。目前我正在 applicationDidFinishLaunching() 中设置所有内容

edit2:
我想我终于明白了:
我创建了一个没有 Storyboard的新项目,创建了一个文件 ViewController.swift 和一个 ViewController.xib 并添加了

window?.contentViewController = ViewController()

进入 AppDelegate 内的 applicationDidFinishLaunching 函数。我不敢相信我没有早点得到这个。抱歉 BaseZen 浪费了您的时间,非常感谢您试图帮助我!

最佳答案

这个问题(远)太宽泛了。请使其更加具体,也许可以根据此处回答的部分对其进行调整,只是为了将来的其他人着想。

所有 Storyboard 技术都有代码内等效项。你的谷歌技术是:

MacOS Swift 如何以编程方式doXyz

顺便说一句,就搜索结果而言,iOS 的受欢迎程度可能高出 10 倍。因此,如果平台无关紧要,而您只想学习如何用代码实现,请从 iOS 开始。

这将使您开始布局:https://www.hackingwithswift.com/read/6/3/auto-layout-in-code-addconstraints

例如,初始化一个非IBOutlet:

var myButton = NSButton()

设置文本:

myButton.title = "Hello"

将其添加到 View Controller 的 View 中:

view.addSubview(myButton)

将其限制在 View 中:

// You have to learn some verbose weird stuff to do this in code
myButton.translatesAutoresizingMaskIntoConstraints = false
view.addConstraint(NSLayoutConstraint( ... ))

将它连接到一个非 IBAction 处理程序,假设您有一个名为 func handleAction(sender: AnyObject) 的函数

myButton.target = self
myButton.action = #selector(MyViewController.handleAction(_:))

最简单的例子:

import Cocoa

class ViewController: NSViewController {
var b = NSButton()

override func viewDidLoad() {
super.viewDidLoad()
b.title = "Hi! I am a button"
b.target = self
b.frame = NSRect(x: 100, y: 100, width: 100, height: 25)
b.action = #selector(ViewController.handleButtonPress(_:))
view.addSubview(b)
}

func handleButtonPress(sender: NSButton) {
b.title = "Thank you for clicking."
b.sizeToFit()
}
}

关于swift - 在没有 Storyboard的情况下将 ViewController 添加到应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38815332/

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