【发布时间】:2011-08-29 18:34:02
【问题描述】:
我正在尝试使用脚本桥计算 Pages 文档(文档格式为 RTF)中的单词。 (我可以使用 NSApplescript 做到这一点,但我宁愿在我的代码中不包含所有支持 applescript 的胶带) 当我使用 applescript(和 NSAppleScript API)执行此任务时,我可以非常简单地(并且成功地)执行此操作:
on wordCount(appName,docName)
local mydoc
local wordcount
tell application appName
set mydoc to document docName
set wordcount to count of words of mydoc
log "wordcount = " & wordcount
return wordcount
end tell
end wordCount
但是,当我使用脚本桥尝试等效项时,我的所有对象似乎都具有空内容。我的代码如下:
+ (NSUInteger) wordCountForApp: (SBApplication*) sbApp docNamed: (NSString*) docName
{
PagesApplication *pages = (PagesApplication*)sbApp;
PagesDocument *doc = [[pages documents] objectWithName:docName];
PagesText *text = [doc bodyText];
SBElementArray *words = [text words];
NSUInteger wc = [words count];
NSLog(@"Pages word count = %ul", (unsigned int) wc);
return wc; // wc comes back as zero always ... grrrr
}
我已经验证我在主线程上运行这些东西(并且等效代码适用于 TextEdit)。关于发生了什么/如何解决的任何想法?
感谢您阅读本文……
【问题讨论】:
标签: objective-c cocoa applescript