You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新手开发AppleScript Studio算命游戏遇TextField文本获取报错求助

嘿,作为编程新手碰到这种报错太正常啦,别慌!咱们一步步拆解问题,先搞定TextField取文本的事儿,再把你的Fortune Teller游戏跑起来~

一、TextField获取文本的正确姿势

你遇到的Can’t get every text of TextField报错,核心原因是用错了AppleScript Studio获取TextField内容的语法。正确的写法分两种情况:

  • 如果你的TextField和窗口都设置了名称(推荐):
    -- 假设TextField的Name是"questionTextField",窗口Name是"mainWindow"
    set userInput to content of text field "questionTextField" of window "mainWindow"
    
  • 如果脚本是窗口的代理(Delegate),可以简化成:
    set userInput to content of text field "questionTextField"
    

⚠️ 重点提醒:这里的"questionTextField"必须和你在Xcode的Identity Inspector里给TextField设置的Name完全一致,大小写、拼写都不能错!

二、你的Fortune Teller游戏完整修正方案

结合你要做的“输入问题→点击Ask→随机返回答案”需求,给你整理好修正后的步骤和代码:

  1. 先确认控件命名

    • 打开Xcode里的nib文件,选中TextField,在右侧Identity Inspector里把它的Name设为questionTextField
    • 选中Ask按钮,同样把Name设为askButton,并确保按钮的Action连接到AppDelegate的clicked:方法(右键按钮拖到AppDelegate上选择clicked:即可)
  2. 替换clicked:方法的代码
    把你原来的代码换成下面这段,我加了错误处理和空输入判断,更稳妥:

    on clicked:sender
        -- 1. 获取用户输入的问题
        try
            set userQuestion to content of text field "questionTextField" of window "mainWindow"
            -- 检查用户是否输入了内容
            if userQuestion is "" then
                display dialog "请输入你的问题哦!" buttons {"好的"} default button 1
                return
            end if
        on error errMsg
            display dialog "获取输入内容出错:" & errMsg buttons {"确定"}
            return
        end try
    
        -- 2. 随机生成答案
        set answerList to {"Yes", "No", "Maybe"}
        set randomIndex to random number from 1 to count of answerList
        set chosenAnswer to item randomIndex of answerList
    
        -- 3. 弹出窗口展示结果
        display dialog "你的问题:" & userQuestion & return & "答案:" & chosenAnswer buttons {"再来一次"} default button 1
    end clicked:
    
  3. 为什么原来的代码会报错?
    你之前用的every text of TextField是错误的语法——AppleScript Studio里TextField的内容属性是content,不是every text,大概率是书籍版本较老或者笔误导致的问题。

三、额外小提示
  • 别忘了确认窗口的Name是mainWindow,不然代码里of window "mainWindow"会找不到窗口
  • 测试的时候先输入问题再点击按钮,避免空输入的尴尬情况
  • 如果还是有问题,检查按钮的Action连接是否正确:右键按钮,看是否已经关联到AppDelegate的clicked:方法

内容的提问来源于stack exchange,提问作者user4004

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:59:36