首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Xcode AppleScript项目中捕获AppleScript切换状态

在Xcode AppleScript项目中捕获AppleScript切换状态
EN

Stack Overflow用户
提问于 2022-07-08 09:24:16
回答 1查看 63关注 0票数 -1

我已经想了几天了,仍然不明白这是怎么回事。

我在Xcode版本13.4.1中创建了一个新的AppleScript项目,并添加了一个CheckBox和一个按钮。我的目标是尝试这样的事情,这取决于CheckBox是滴答还是不滴答。

我对Xcode非常陌生,所以我很可能做错了什么。之所以没有显示真正的代码,是因为我没有任何有用的东西,所以我想问是否有人能通过填补缺失的空白来帮助我学习这一点。

在我看来,Xcode Applescript对象的文档看起来很薄,或者至少我发现了这一点。

谢谢

代码语言:javascript
运行
复制
        property checkBox : 1 -- bound to the value of the check box & is ticked when run
        
        #START BUTTON
        on startButtonClick_(sender)
                            
            -- if checkbox is ticked then show alert "ticked"
            -- if checkbox is NOT ticked then show alert "NOT ticked"
            
        end startButtonClick_

更新

有人建议,包括真正的代码将是更有用的,我确实同意,因此,这是我尝试过的最新尝试。

代码语言:javascript
运行
复制
property checkBox : missing value -- bound to the value of the check box
        
        #START BUTTON
        on startButtonClick_(sender)
            
            set checkBox to (checkBox as boolean) -- toggle
                            
            if checkBox is 1 then display alert "Ticked"
            
            log checkBox
            
        end startButtonClick_

警报从未显示,但日志输出显示选中复选框时为1,当我按下按钮时为0。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-08 20:45:46

这里有两个问题,取决于你想要做什么。

如果试图连接复选框操作,以便它在单击复选框时调用处理程序,请遵循以下步骤:

  1. 在脚本中创建一个处理程序(在您的例子中,startButtonClick_(sender)处理程序)

  1. 打开xib文件,选择左侧

上的第一个Responder对象

  1. 转到检查器区域的“属性”窗格。您将看到一个标有“用户定义的”的框,因此单击“+”按钮添加一个新的用户定义操作。

代码语言:javascript
运行
复制
- Use the name of your handler with a colon, not an underscore, e.g.: startButtonClick:
- Set the 'type' to NSButton (or I suppose you can use the default 'id')

  1. 在IB中选择文件的所有者对象,转到Connections检查器,并确保以文件所有者委托的方式连接AppDlegate。

代码语言:javascript
运行
复制
- It should be, but I tripped over that problem during testing, so...

  1. 在IB

中选择问题按钮

  1. 转到Connections检查器,并从已发送的操作区域拖动到第一个Responder,选择您的用户定义的操作(现在应该出现在弹出菜单中)。

现在,当您运行应用程序并单击复选框时,它将使用对复选框的引用作为其参数来运行hander。您可以使用sender's state()查询该按钮的当前值。

如果希望对按钮进行静态全局引用,以便在脚本中的任何位置检查其状态,则可能会遇到问题。在Xcode 12和更早版本中,脚本属性将在AppDelegate弹出菜单中显示为出口,这样您就可以以图形方式连接GUI元素。Xcode 13有一个尚未解决的bug,这使得这是不可能的,但是您可以通过直接编辑xib xml来在一定程度上解决它。我已经详细介绍了如何在this post中做到这一点。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72909322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档