0

我是编程新手,正在尝试根据“Applescript studio programming for the absolute初学者”一书设计一个算命先生游戏。

当玩家在文本字段中输入问题然后点击“提问”按钮时,程序会随机给出“是”“否”“也许”的答案。

我按照书上的指示做了。但是当我按下 build 并进入 Xcode 时,它​​返回“2018-04-08 22:22:01.189 Fortune Teller[14813:245050] *** -[AppDelegate clicked:]: Can't get every text of TextField of class “NSObject”。(错误 -1728)

谁能告诉我如何解决这个问题?谢谢!

下面是界面。 在此处输入图像描述

以下是代码。

-- 每当玩家点击 clicked_(theObject) 上的 Ask 按钮时,此代码就会运行

-- 分配播放器输入的文本,单击“询问”按钮将问题设置为窗口“主”的文本字段“文本框”的内容

-- 如果玩家没有输入任何文本,则显示错误消息 if question = "" 然后显示对话框 ¬"对不起,您没有提出问题。请再试一次。"¬ 按钮 {"OK"} 返回 end if - - 将 1 到 3 之间的随机数分配给名为 random 的变量,将 randomNo 分配给 1 到 3 之间的随机数

如果 randomNo = 1 然后将答案设置为“是”结束如果

如果 randomNo = 2 然后将答案设置为“否” end if

如果 randomNo = 3 然后将答案设置为“也许”结束如果

beep -- 发出哔声以获取玩家的意图

显示显示对话框“问题:”&问题&“答案:”&答案&按钮{“确定”}结束点击_

4

1 回答 1

1

哎哟。买一本新书。

Mac OS X 10.6 将 AppleScript Studio 替换为 AppleScript-ObjC。与 ASS 不同,它为您提供了用于控制 Cocoa 的 AppleScript 风格的命令和类,ASOC 只是 Cocoa 的 Objective-C API 的一个薄包装,这意味着您需要先学习这些API,然后才能使用它。

Shane Stanley 曾经有一本关于使用 ASOC 进行 GUI 编程的电子书,但不幸的是我认为它已经绝版了。在 Apress 的 Learn AppleScript 第 3 版(我与人合写)的末尾有一个关于 ASOC 的 GUI 编程的介绍性章节,AppleScript 用户邮件列表/MacScripter.net 论坛无疑可以为您指出任何其他资源那里。但总而言之,文档和支持不是很好。您几乎必须学习 ObjC 才能有效地使用 ASOC,即使只是阅读 Cocoa 文档并将其翻译成您脑海中的 AS 语法。而且它已经好几年没有更新了,因此缺乏对新的 ObjC 功能(例如块)的支持,这意味着如果你想使用这些 API,你最终还是要编写 ObjC 代码。

..

坦率地说,如果您的目标是编写自己的 GUI 应用程序(而不是自动化现有的应用程序),我强烈建议您咬紧牙关学习 Apple 的 Swift。虽然它是一种臃肿的语言,但它有据可查,被广泛使用,并且得到 Apple 的 100% 支持 [与 AppleScript 不同]。随着 Apple 最近宣布了一个用于编写 iOS 和 macOS 应用程序的新 GUI 框架,很明显 Swift 是未来。

如果您需要一点 AppleScript 来与其他应用程序对话,可以在同一个应用程序中混合使用 Swift 和 AS;但对于单独的帖子,这是一个不同的问题。

于 2018-04-08T18:59:58.073 回答