我如何使用AppleScriptObjC根据字符串更改按钮的状态?

时间:2013-03-11 02:22:18

标签: xcode macos applescript-objc

在我的AppleScriptObjC程序中,我有很多复选框。我有一个脚本循环遍历列表,按钮的每个项标识符都作为字符串。我希望它根据参数激活每个按钮的setState_方法。简而言之,我正在寻找这样的东西:

    set strIdentifier to "button identifier"
    [magic code here!]
    strIdentifier's setState_(1)

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我认为没有任何“魔力”可以做到这一点。我的目的是遍历复选框的父视图中的控件,如下所示:

repeat with aSubview in theParentView's subviews()
    if aSubview's title()'s isEqualToString_("Check") is not 0 then
        aSubview's setState_(false)
    end if
end repeat

此处,theParentView是复选框所在视图的出口。 基本上有两种选择:

  • 对于每个标识符,您循环浏览子视图
  • 您循环浏览子视图并将其添加到字典中,标识符为键。稍后,您可以通过访问字典来访问该复选框。

在第二种情况下,代码可能如下所示:

set aDict to NSMutableDictionary's alloc()'s init()

repeat with aSubview in theWindow's subviews()
    aDict's setObject_forKey_(aSubview, aSubview's title())
end repeat

aDict's objectForKey_("Check 1")'s setState_(false)