gpt4 book ai didi

swift - 命令行 Swift 脚本的最低限度可行的 GUI 是什么?

转载 作者:行者123 更新时间:2023-12-03 16:28:16 26 4
gpt4 key购买 nike

我需要一个用于 macOS 上的 Swift 脚本的小 GUI 帮助程序。它只需要一个文本输入字段和一个确定按钮。

我不想为了这个小弹出窗口走整个臃肿的 Xcode 路线。然而,Apple 的文档让我失望了,因为我的 NSWindow 没有捕获键盘输入。救命!

最佳答案

不用谢Apple's documentation ,我终于弄清楚了从接受键盘输入的命令行 Swift 应用程序启动简单的 AppKit/Cocoa GUI 所需的神奇咒语🧙‍♂️。 没有 Xcode!

这也是接受 WKWebView 中的文本输入所必需的。

// main.swift // Dylan Sharhon // Tested on Catalina, Nov 2019
import AppKit // import Cocoa if you also need Foundation functionality

let app = NSApplication.shared
app.setActivationPolicy(.regular) // Magic to accept keyboard input and be docked!

let window = NSWindow.init(
contentRect: NSRect(x: 300, y: 300, width: 200, height: 85),
styleMask: [
NSWindow.StyleMask.titled // Magic needed to accept keyboard input
],
backing: NSWindow.BackingStoreType.buffered,
defer: false
)
window.makeKeyAndOrderFront(nil) // Magic needed to display the window

// Text input field
let text = NSTextField.init(string: "")
text.frame = NSRect(x: 10, y: 45, width: 180, height: 25)
window.contentView!.addSubview(text)

// Button
class Target {
@objc func onClick () { // Magic @objc needed for the button action
print(text.stringValue) // Goes to stdout
exit(0)
}
}
let target = Target()
let button = NSButton.init(
title: "OK",
target: target,
action: #selector(Target.onClick)
)
button.frame = NSRect(x:50, y:10, width:100, height:30)
window.contentView!.addSubview(button)

app.run()

对于像我这样的新手:这是整个应用程序,您可以使用 swift main.swift 运行它,或者使用 swiftc main.swift 编译它code> 并将生成的可执行文件(仅 40 KB)重命名为您想要在菜单栏中出现的任何名称。

关于swift - 命令行 Swift 脚本的最低限度可行的 GUI 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58872398/

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