Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Applescript 如何将当前活动窗口的ContentsChanged设置为true(关闭按钮中的黑点)?_Applescript - Fatal编程技术网

Applescript 如何将当前活动窗口的ContentsChanged设置为true(关闭按钮中的黑点)?

Applescript 如何将当前活动窗口的ContentsChanged设置为true(关闭按钮中的黑点)?,applescript,Applescript,如何使用applescript设置窗口关闭按钮中的黑点? 从中,我可以猜到: tell app "CurrentApp" to set ContentsChanged to true of window 1 但它不起作用:执行错误:CurrentApp出错:无法将窗口1的内容更改为类型说明符-1700 另外,如何使用applescript获取当前应用程序的内容? 此问题与相关,首先回答问题的第二部分:例如,您可以使用最前面的应用程序获取当前应用程序 tell application "Find

如何使用applescript设置窗口关闭按钮中的黑点? 从中,我可以猜到:

tell app "CurrentApp" to set ContentsChanged to true of window 1
但它不起作用:执行错误:CurrentApp出错:无法将窗口1的内容更改为类型说明符-1700

另外,如何使用applescript获取当前应用程序的内容?
此问题与

相关,首先回答问题的第二部分:例如,您可以使用最前面的应用程序获取当前应用程序

tell application "Finder"
    set frontApp to the path to the frontmost application
end tell
对你问题第一部分的简短回答是:目前不可能做你想做的事。答案如下

从您的评论中,我了解到您正在使用Python和TCL/TK构建GUI

显然,并不是每个应用程序都能设置contentsChanged指示符,这是RealBasic中所称的,而不是苹果的API中所称的。检查应用程序的AppleScript字典。根据我在其他地方读到的内容,TextEdit过去能够设置文档的修改属性,但当我在Mac OS X 10.6.8中尝试此功能时,它不再工作

如果您使用的是本机Cocoa应用程序,则可以通过一些GUI脚本在文档中添加和删除空格来设置此指示器,例如,键入空格并使用“撤消”菜单项将其删除。不幸的是,当我在TextEdit中尝试此操作时,Undo命令也删除了该指示器

我查看了苹果的API文档,在NSWindow类中似乎有一个方法setDocumentEdit。不幸的是,苹果没有正确地描述它的功能,但是如果DocumentEdited属性设置为true,它似乎会在红色的关闭按钮中设置暗点。你可以。如果您使用的是TCL/TK,那么它必须能够以某种方式调用SetDocumentEdited方法


您不能告诉操作系统更改窗口的DocumentEdited属性,该属性等同于您在AppleScript字典中找到的已修改属性。您正在谈论的pythontcl/TK应用程序需要实现这一点。如果TCL/TK没有用于此操作的命令,那么无论您使用的是AppleScript、Python还是其他什么,这都可能是不可能的。我建议您在TCL/TK论坛上询问是否有人可以编写和编译一种插件来实现此功能

谢谢你的回复。如何检查应用程序的“字典”?似乎OS Lion已经引入了一个系统级的自动保存功能,使得依赖它的应用程序不再显示黑点。Mh。使用Tkinter std GUI toolkit运行Python脚本时,应用程序窗口不是最前面的。诀窍是:os.system'/usr/bin/osascript-e'告诉AppFinder将最前面的进程Python设置为true'。但是如果你“冻结”你的python脚本来编译它,那么应用程序的名称就不再是python,而是你的二进制文件的名称,可能会有所不同。我尝试使用你的建议,然后将最前端的Python替换为frontApp,但没有成功。事实上,可能它确实有效,但它将最前端的Python独立二进制文件设置为最前端,而不是创建窗口的Python独立二进制文件,而是已在最前端执行二进制文件的终端窗口。。。不过,这不是什么大问题——我知道二进制文件的名称——只是它会根据是否在全球发行版中安装而变化,这意味着我需要记住在python脚本中修改二进制文件的名称。好吧,我真傻。使用开放词典。。。而不是正常的开放式工程。在那里,我可以看到标准套件的文档标题修改了属性,这正是我想要控制的,谢谢您的回答。我首先在Python论坛上问了这个问题,请参阅我问题中的第二个链接。好的,所以它需要tkinter中用Python接口的Tcl/Tk来实现这个mac特性,但我所看到的并不是这样。尽管如此,我还是很困惑,为什么你可以用applescript访问苹果窗口管理器或Cocoa等的一些GUI功能,而不是这个。。。尤其是现在,似乎有更多的系统范围内的控制,它与操作系统狮子。无论如何,谢谢你。请把你最后的评论作为答案,我会接受的