【发布时间】:2015-06-10 17:24:17
【问题描述】:
免责声明:我正在尝试以下练习,因为我认为它具有指导意义。我对如何完成很感兴趣。所以请不要急于跳入“这是错误的做法,你永远不应该这样做!”
使用我最喜欢的文本编辑器从命令行工作,我想构建一个显示窗口的最小 Swift 程序。
如果你愿意,这是一个 GUI/Cococa hello 世界。
本着同样的精神,我想避免NIB。
所以,没有 XCode,没有 NIB。
我想:
- 用 swift 编译器编译它
- 创建一个#!使用 Swift 解释器运行的 swift 脚本
如果我能同时做这两件事,我会感到自己的脚在地上,并且更容易升级到 Xcode。
我尝试了以下方法:
window.swift
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet weak var window: NSWindow!
let newWindow = NSWindow(contentRect : NSScreen.mainScreen()!.frame
, styleMask : NSBorderlessWindowMask
, backing : NSBackingStoreType.Buffered
, defer : false)
func applicationDidFinishLaunching(aNotification: NSNotification) {
// Insert code here to initialize your application
newWindow.opaque = false
newWindow.movableByWindowBackground = true
newWindow.backgroundColor = NSColor.whiteColor()
newWindow.makeKeyAndOrderFront(nil)
}
func applicationWillTerminate(aNotification: NSNotification) {
// Insert code here to tear down your application
}
}
但是,尝试从命令行运行它会失败:
pi@piBookAir.local ~ /Users/pi/dev/macdev:
⤐ swift window.swift
window.swift:3:1: error: 'NSApplicationMain' attribute cannot be used in a
module that contains top-level code
@NSApplicationMain
^
window.swift:1:1: note: top-level code defined in this source file
import Cocoa
^
✘
消除错误的正确方法是什么?
【问题讨论】:
标签: swift command-line nswindow