0

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

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

任何帮助,将不胜感激!

4

1 回答 1

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)
于 2013-05-29T06:09:40.423 回答