Xcode Applescript创建结果列表

时间:2014-02-23 02:29:30

标签: xcode applescript

我一直在尝试找出实现这一目标的最佳方法,每次我认为自己处于某种状态时似乎无法正常工作。

如果有人能指出我正确的方向指向现有的例子或正确的谷歌术语,我将非常感激。

我正在Xcode 5中创建一个Cocoa - Applescript应用程序。

我已经掌握了基础知识,到目前为止提示用户选择音轨,然后在快速时间播放曲目,我有一个按钮可以返回曲目的当前播放时间,因为它代表这会将时间返回到SMPTE ala的变量。

tell application "QuickTime Player"
        set SMPTE to get current time of document 1
    end tell

我的问题是如何处理“SMPTE”的结果

我想在一个单独的窗口中生成一个列表,每个按钮按下更新一个带有新返回值的新行。

我尝试过使用NSTableColumn但无法解决如何在每次后续按下按钮时“自动填充”。

1 个答案:

答案 0 :(得分:2)

一种非常简单的方式。

将NSArrayController添加到IB对象。

将其连接到插座 选择TableView的 TableColumn 并转到它Bindings Inspector。

绑定到阵列控制器

并将其模型关键路径命名为“时间

TableColumn 的属性检查器中。将其标题设置为“时间

代码如下:

 property ArrayController :missing value



    on addTime_(sender) --clicked to add time
        tell application "QuickTime Player"
            set SMPTE to get current time of document 1
        end tell

        ArrayController's addObject:{|time|:SMPTE}
    end addTime_

Button需要连接到Action: addTime:


删除项目:

只需添加一个新按钮并将其连接到ArrayController的Remove Action方法即可。 (通过将按钮的连接拖到IB中的ArrayController对象并选择删除:


要保存数据,以便能够在重新启动时看到它:

在IB中选择ArrayController对象并转到它的绑定检查器。 将控件内容的内容数组绑定到“共享用户默认控制器”

并将其模型关键路径命名为“ theValues


有一个非常好的介绍教程here

和NSArrayController的Docs