我是编程新手,正在尝试根据“绝对初学者的Applescript工作室编程”一书来设计一款Fortune Teller游戏。
当玩家在文本字段中键入问题然后单击“询问”按钮时,程序将随机给出答案“是”“否”“可能”。
我按书的指示做了。但是当我按下build并进入Xcode时,它返回“2018-04-08 22:22:01.189 Fortune Teller [14813:245050] *** - [AppDelegate点击:]:无法获取TextField的每个文本类“NSObject”。(错误-1728)“
谁能告诉我如何解决这个问题?谢谢!
以下是界面。
以下是代码。
- 只要玩家点击“询问”按钮,此代码就会运行 on clicked_(theObject)
- 指定玩家输入的文字点击“询问”按钮 将问题设置为窗口“main”的文本字段“textbox”的内容
- 如果播放器未输入任何文字,则显示错误消息 如果问题=“”那么 显示对话¬ “对不起,但你没有问一个问题。请再试一次。”¬ 按钮{“OK”} 返回 万一 - 将1到3之间的随机数分配给名为random的变量 将randomNo设置为1到3的随机数
如果randomNo = 1那么 将答案设为“是” 结束如果
如果randomNo = 2那么 设置答案为“否” 结束如果
如果randomNo = 3那么 设置答案“可能” 结束如果
发出哔哔声 - 发出哔哔声以获得玩家的意图显示对话框“问题:”&问题& “答案:”&回答&按钮{“OK”} 结束点击_
答案 0 :(得分:1)
哎哟。得到一本新书。
Mac OS X 10.6将AppleScript Studio替换为AppleScript-ObjC。与ASS相比,它为您提供了用于控制Cocoa的AppleScript风格的命令和类,ASOC只是Cocoa的Objective-C API的一个薄包装,这意味着您需要先学习那些 API才能使用它。 / p>
Shane Stanley曾经在ASOC上有一本关于GUI编程的电子书,但我认为不幸的是它已经绝版了。在Apress的Learn AppleScript第3版(我共同撰写)的最后,有一篇关于ASOC GUI编程的介绍性章节,AppleScript用户邮件列表/ MacScripter.net论坛毫无疑问会指出你的其他资源是什么那里。但总而言之,文档和支持并不是很好。您几乎必须学习ObjC才能有效地使用ASOC,即使只是阅读Cocoa文档并将其转换为AS语法。并且它在几年内没有更新,因此缺乏对块等新的ObjC功能的支持,这意味着如果你想使用这些API,你最终还是会编写ObjC代码。
...
坦率地说,如果你的目标是编写自己的GUI应用程序(而不是自动化现有应用程序),我强烈建议你咬紧牙关学习Apple的Swift。虽然它是一种臃肿的语言混乱,但它有很好的文档记录,被广泛使用,并且100%得到Apple的支持[与AppleScript不同]。随着Apple最近发布了一个用于编写iOS和macOS应用程序的新GUI框架,很明显Swift是未来。
如果您需要一些AppleScript与其他应用程序交谈,可以在同一个应用程序中混合使用Swift和AS;但对于另一个帖子来说,这是一个不同的问题。