I have no idea what I’m doing

29 天前
 esrkforward

在搁置了很久之后,我终于决定开始写一个念想了很久的小工具。我希望它实现的功能很简单:当我清洁 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

1881 次点击
所在节点    Apple
12 条回复
pxiphx891
29 天前
很棒
7VO54YYGvw3LOF9U
29 天前
TL;DR
关机不就行了
LK99
29 天前
@hugi #2
~ ❯ uptime
19:49 up 119 days, 17:04, 7 users, load averages: 2.17 2.18 2.27
MacBook 的用法之一是尽量不关机。
itisqiang
29 天前
@hugi 关机的话,按到任意键也会开机
chuck1in
29 天前
swift 的东西做的这么差劲吗?
另外想问下 op 你做的这种工具如果想要给其他用户使用的话,是不是必须要上 appstore 才行,这就涉及到要备案?
Aaarnold
29 天前
@hugi 擦到触控板就开机了😫
x4gz
29 天前
为什么要搜索报错 直接把报错作为后续问题问 chatgpt 不就行了
goldenlove
29 天前
esrkforward
29 天前
@x4gz 尝试很多次把报错喂给 ChatGPT ,但是始终给出的都是错误的回答
esrkforward
29 天前
@goldenlove 是的,我知道有许多类似的工具。主要是出于好玩自己造个轮子,顺便学习下 Swift
esrkforward
29 天前
@chuck1in 不必须上 App Store ,可以直接分发安装包。
Scare
28 天前
@hugi 不用吧,直接 command+control+q ,锁定屏幕,降低亮度,擦完键盘和屏幕以后,再解锁调高亮度使用就可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1034708

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX