我目前正在开发一个实用程序,要求在对用户的默认值进行一些更改后重新启动Finder。
为了安全起见,我想在调用ondblClickRow: function (rowid, iRow, iCol, e) {
$(this).jqGrid("editRow", rowid, { focusField: e.target });
},
beforeSelectRow: function (rowid) {
var $self = $(this), i,
// savedRows array is not empty if some row is in inline editing mode
savedRows = $self.jqGrid("getGridParam", "savedRow");
for (i = 0; i < savedRows.length; i++) {
if (savedRows[0].id !== rowid) {
// save currently editing row
// one can replace saveRow to restoreRow in the next line
$self.jqGrid("saveRow", savedRows[i].id);
}
}
return savedRows.length === 0; // allow selection if saving successful
},
之前检查Finder是否忙碌(通过killall Finder
)。如果Finder正在复制文件或以其他方式忙,我想阻止该操作并稍等一下。
在macOS 10.10+上的Swift 2.3中,有没有办法确定Finder是否繁忙或是否可以安全地被杀死?
如果无法做到这一点,是否有更安全的方式让我刷新(重启)Finder?
谢谢!
答案 0 :(得分:0)
感谢@dfri的评论,我能够找到一种方法(虽然不是链接答案中提供的方式)。
由于无法观察Finder的NSRunningApplication
对象(在我移除观察者之前,对象由于终止而deinit
ialized),我最终从NSWorkspaceDidTerminateApplicationNotification
观察{ {1}}
NSWorkspace.sharedWorkspace().notificationCenter
当我的控制器NSWorkspace.sharedWorkspace().notificationCenter.addObserver(self, selector: #selector(MyController.applicationWasTerminated(_:)), name: NSWorkspaceDidTerminateApplicationNotification, object: nil)
ialized时,我可以移除此观察者,并且选择器如下所示:
deinit