TextEditの「ファイルが変更されました」ダイアログが不必要に表示されるのを防ぐことはできますか?


4

TextEdit.appからのアラートダイアログがランダムにポップアップするときに、コンピューター(Google Chromeなど)で何かをすることがよくあります。ダイアログは次のようになります。

ダイアログは、TextEditで開いているRTFドキュメントまたは最小化されたRTFドキュメントに加えられた変更を保存するかどうかを尋ねます。TextEditがアクティブなアプリケーションではない場合でも、ダイアログが表示されることがあります。ダイアログはどこからともなく出てきます。

このダイアログに対する私の答えは、100%ですSave Anyway。これは、Revertボタンを押すと、ファイルが最後に保存されたバージョンに変更できなくなるためです(明らかに望ましくありません)。

  1. ドキュメントが別のアプリケーションで編集されていない場合、なぜこのメッセージが表示されるのですか?または、どのアプリケーション(つまり「別のアプリケーション」)がドキュメントの変更を正確に担当しているかを正確に把握するにはどうすればよいですか?

  2. このダイアログが不必要に表示されるのを防ぐことはできますか?または、Texteditがデフォルトで「とにかく保存」することは可能ですか?

OS X El Capitan、バージョン10.11.6。

回答:


2

基になるファイルを変更せずにこのシートを見たことはありません。ファイルでopensnoopを試して、ファイルにアクセスしているプロセスを特定します。

$ sudo opensnoop -f /path/to/file.txt
  UID    PID COMM          FD PATH
  501  32092 Finder        14 /path/to/file.txt
    0     81 mds           28 /path/to/file.txt
  501  41898 mdworker       9 /path/to/file.txt
  501  42646 TextMate      16 /path/to/file.txt
  501  42646 TextMate      16 /path/to/file.txt
  501  42646 TextMate      25 /path/to/file.txt
  501  42646 TextMate      26 /path/to/file.txt

これはライブ印刷であるため、シートを取得するまでopensnoopを実行したままにして、ターミナルウィンドウを確認してプロセスを確認します。終了したら、Cはopensnoopを停止します。opensnoopを使用するにはSystem Integrity Protection無効にする必要があり、後で再度有効にできます。


opensnoop行を入力すると、ターミナルに次のメッセージが表示されますtoken too large, exceeds YYLMAX。これを修正する方法を知っていますか?
ルービックの球体

@rubikこれは、パスにスペースが含まれるファイルのopensnoopの引用が正しくないためです。開き、/usr/bin/opensnoopテキストエディタで直接ライン162と163 162の$変数を二重引用符で囲むのペアを追加し、今読んでくださいinline string PATHNAME = "'"$pathname"'";、引用符の各側面から行ってきましたよう" '" ' "(スペースなし)。
GRGの

編集したファイルをどのように保存しますか?TextEditまたはTextWranglerで保存できません。エラーが表示されます。You don’t own the file “opensnoop” and don’t have permission to write to it.編集したファイルを/usr/bin/フォルダーに貼り付けようとしましたが、機能しません。Finderの[情報を見る]ウィンドウでファイルまたはフォルダーのアクセス許可を変更しようとすると、次のエラーが表示されます。 The operation can’t be completed because you don’t have the necessary permission.しかし、ユーザーアカウントは管理者アカウントであり、唯一のユーザーです。
ルービックの球

@rubikシステムファイルを変更するには、システム整合性保護を無効にする必要があります。opensnoopを使用するには無効にする必要があるため、そのことを忘れていました。
GRGの

何を知り、何RSScriptRunnercp参照していますか?私のopensnoopログに基づいてバックグラウンドで.rtfファイルにアクセス/編集するのはこれらのプロセスの一方または両方であると考えています。
ルービックの球

0

閉鎖:

ユーザーの回答でgrgarsideが提供した指示に従いました。

実際、.rtfファイルは別のアプリケーションによって変更されていることに気付きました。したがって、The file has been changed by another application.ダイアログが表示されたことは完全に適切です。

以下のようgrgarsideが提案され、ダイアログが実際に不登場したことがありません。

具体的には、ファイルは私のAppleScriptによって変更されていました。解決策は、AppleScriptコードにチェックを実装して、.rtfファイルが既に開いているかどうかを確認することでした。.rtfファイルが開いている場合、AppleScriptコードがこのファイルにテキストを書き込まないようにしました。

AppleScriptコードを修正した後、このダイアログを見たことはありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.