V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
esrkforward
V2EX  ›  Apple

I have no idea what I’m doing

  •  1
     
  •   esrkforward · 11 天前 · 1689 次点击

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

    12 条回复    2024-04-23 22:25:21 +08:00
    pxiphx891
        1
    pxiphx891  
       11 天前
    很棒
    hugi
        2
    hugi  
       11 天前 via iPhone
    TL;DR
    关机不就行了
    LK99
        3
    LK99  
       11 天前
    @hugi #2
    ~ ❯ uptime
    19:49 up 119 days, 17:04, 7 users, load averages: 2.17 2.18 2.27
    MacBook 的用法之一是尽量不关机。
    itisqiang
        4
    itisqiang  
       11 天前
    @hugi 关机的话,按到任意键也会开机
    chuck1in
        5
    chuck1in  
       11 天前
    swift 的东西做的这么差劲吗?
    另外想问下 op 你做的这种工具如果想要给其他用户使用的话,是不是必须要上 appstore 才行,这就涉及到要备案?
    Aaarnold
        6
    Aaarnold  
       11 天前
    @hugi 擦到触控板就开机了😫
    x4gz
        7
    x4gz  
       11 天前
    为什么要搜索报错 直接把报错作为后续问题问 chatgpt 不就行了
    esrkforward
        9
    esrkforward  
    OP
       11 天前
    @x4gz 尝试很多次把报错喂给 ChatGPT ,但是始终给出的都是错误的回答
    esrkforward
        10
    esrkforward  
    OP
       11 天前
    @goldenlove 是的,我知道有许多类似的工具。主要是出于好玩自己造个轮子,顺便学习下 Swift
    esrkforward
        11
    esrkforward  
    OP
       11 天前 via iPad
    @chuck1in 不必须上 App Store ,可以直接分发安装包。
    Scare
        12
    Scare  
       10 天前
    @hugi 不用吧,直接 command+control+q ,锁定屏幕,降低亮度,擦完键盘和屏幕以后,再解锁调高亮度使用就可以了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1052 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:09 · PVG 02:09 · LAX 11:09 · JFK 14:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.