我一直在尝试找出实现这一目标的最佳方法,每次我认为自己处于某种状态时似乎无法正常工作。
如果有人能指出我正确的方向指向现有的例子或正确的谷歌术语,我将非常感激。
我正在Xcode 5中创建一个Cocoa - Applescript应用程序。
我已经掌握了基础知识,到目前为止提示用户选择音轨,然后在快速时间播放曲目,我有一个按钮可以返回曲目的当前播放时间,因为它代表这会将时间返回到SMPTE ala的变量。
tell application "QuickTime Player"
set SMPTE to get current time of document 1
end tell
我的问题是如何处理“SMPTE”的结果
我想在一个单独的窗口中生成一个列表,每个按钮按下更新一个带有新返回值的新行。
我尝试过使用NSTableColumn但无法解决如何在每次后续按下按钮时“自动填充”。
答案 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