Tôi đang thay đổi các tùy chọn .GlobalPreferences NSUserSubstitutions thông qua lớp NSUserDefaults
(thông qua PyObjC, nhưng ngoài vấn đề này).Làm cách nào để báo hiệu các ứng dụng Cocoa khác mà tùy chọn đã được thay đổi?
sở thích này kiểm soát thay thế văn bản tính năng (ví dụ có thể thay thế "©" cho "(c)") của OS X.
Sau khi thay đổi các ưu tiên, tôi muốn nó để áp dụng ngay lập tức trong tất cả các ứng dụng đang chạy. Khi nó được thay đổi thông qua System Preferences, nó được áp dụng ngay lập tức. Làm cách nào để tôi báo hiệu các ứng dụng khác áp dụng ngay lập tức?
Cập nhật: Đây là dự án: https://github.com/ikonst/mac-tex-substitutions
Có thể không có cách nào. 'NSUserDefaults' [sử dụng bộ nhớ cache cho mỗi ứng dụng] (http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/UserDefaults/AccessingPreferenceValues/AccessingPreferenceValues.html#//apple_ref/doc/uid/10000059i- CH3-97569) được cập nhật định kỳ. Ứng dụng của bạn có thể yêu cầu đồng bộ hóa ngay lập tức cho chính nó, nhưng trừ khi các ứng dụng khác đã đăng ký hành động trên 'NSUserDefaultsDidChangeNotification', chúng có thể sẽ chỉ cần chờ đồng bộ hóa tự động. Tôi có thể đã bỏ lỡ một cái gì đó, tuy nhiên. –
Tôi đã nghĩ như vậy, nếu System Preferences không quản lý để áp dụng ngay lập tức, nhưng nó quản lý ... vì vậy phải có một cách! – Ilya
Hmm, điểm tốt. –