I have no idea what I’m doing

7次阅读

共计 1387 个字符,预计需要花费 4 分钟才能阅读完成。

在搁置了很久之后,我终于决定开始写一个念想了很久的小工具。我希望它实现的功能很简单:当我清洁 MacBook 的键盘与触摸板时,这个小工具会帮我禁用键盘,以防误触。同时,将屏幕调至黑色,以帮助我清洁屏幕上的污点。

我知道 OneSwitch 提供了这个功能,并且我很久之前就买了 OneSwitch。但是嘛,人生中总有那么一些时刻,你想要自己创造些什么,尽管并不是什么了不起的创造。就像小时候用橡皮泥捏的小狗,尽管是个龇牙咧嘴歪瓜裂枣的丑小狗,但你依然会为此感到骄傲和快乐。

况且,在写习惯了 C# 之后,我也对 Swift 和 SwiftUI 充满了好奇。我想,这是一个学习掌握新技能的好机会。

我觉得这个任务会很简单,尽管我从未有任何编写 macOS 软件以及 Swift 和 SwiftUI 的经验。但是我想,嘿,这个简单的小工具实现起来能有多难呢?况且,在 ChatGPT 的帮助下,我觉得应该半小时就能完成。

事实证明,我既高估了自己,也高估了 ChatGPT。

当我喂给 ChatGPT 一些提示词后,它给我生成了一些看起来还像模像样的代码。我凭借自己的半吊子 C# 经验,把我觉得会生效的部分粘贴到 Xcode 中——让窗口进入全屏只需要一个 .fullScreenCover() 嘛,简单。

然后 Xcode 就报错了。

我看着鲜红的报错,脑子里只有一个念头:I have totally no fucking idea what I’m reading.

虽然我能看懂报错的意思,但我完全不知道要怎么解决。Google 了一圈,大部分答案都和 ChatGPT 给出的一模一样。在各个论坛和站点里逛了一圈,才知道.fullScreenCover() 不适用于 macOS。又找了一圈,才在一个论坛里找出一串能用的代码:

.onAppear() {Task { @MainActor in NSApplication.shared.windows.last?.toggleFullScreen(nil) }
						}

我看着这串代码,脑子里只有一个想法:I have totally no fucking idea what I’m doing.

但这不重要,至少我们实现了第一步:让这个小工具全屏运行。

接下来我们要让这个小工具显示黑色的背景。这一步倒是很简单,ChatGPT 至少给出了基本正确的答案。在把代码复制进 Xcode 然后缝缝补补之后,我们果然得到了纯净的黑色背景。之后,我又实现了一个简单的退出程序的功能。

当我做完这些工作,我发现已经过去了接近三个小时。而我只在项目里新增了八行代码——还包括注释。但是,尽管这个小工具非常简陋;尽管它还缺失了很多关键功能,比如屏蔽键盘快捷键;尽管这八行代码里有三行我都完全不知道是什么意思。可是当我把它运行起来的时候,我还是感到非常愉悦。

这是我的潦草小狗,它很潦草,但我很喜欢它。

我把这个项目发布到了 GitHub,你可以在 这里 查看它。在接下来的时间里,我会慢慢完善这个小工具,希望它在将来会给各位提供一些帮助。我也准备借这个机会好好学习一下 Swift,至少能看懂自己的项目。不过现在,我准备休息一下,喝杯咖啡,然后和我的伴侣分享这个消息:“嘿,你看,我捏了一个潦草小狗。”

Bonus:在 YouTube 上有一个搞笑视频,可以完美的描述我在写这个项目时的心情。在这里分享给各位。
https://www.youtube.com/watch?v=rR4n-0KYeKQ

正文完
 0