Làm thế nào mà Dropbox có được một biểu tượng trong thanh bên Finder?


40

Làm thế nào mà Dropbox có được một biểu tượng không chung chung trong thanh bên của Finder, khi các thư mục khác như Google Drive và Trang web (nguyên bản trong OS X trước Lion) đều có cùng một biểu tượng chung?

nhập mô tả hình ảnh ở đây

Làm cách nào tôi có thể tùy chỉnh các biểu tượng được sử dụng bởi các thư mục trong thanh bên? OS X được sử dụng để hiển thị các biểu tượng riêng lẻ của tất cả các thư mục ở đó - không còn nữa.

Câu trả lời:


36

Như bạn đã nhận thấy, các phiên bản gần đây của OS X chỉ hiển thị các biểu tượng thư mục chung trong thanh bên. Vậy tại sao Dropbox được điều trị đặc biệt?

Câu trả lời ngắn gọn là Dropbox sử dụng API không có giấy tờ để thực hiện việc này. Nói một cách phi kỹ thuật, đó là một bản hack đặc biệt được cài đặt bởi ứng dụng Dropbox.


Một số người tò mò trên StackOverflow đã tìm thấy cơ chế cụ thể được sử dụng bởi Dropbox: good ol 'mach_inject. Gói tương tự cung cấp cả mục thanh công cụ và biểu tượng thanh bên.

Nếu bạn tò mò, các tệp tài nguyên sống ở đây (ít nhất, trên hệ thống của tôi):

/Library/DropboxHelperTools/Dropbox_u502/DropboxBundle.bundle/Contents/Resources

Rõ ràng, Dropbox đã có những bước dài để tích hợp hoàn toàn vào Finder. Thiếu cách xử lý tương tự, các thư mục thông thường khác chỉ có các biểu tượng chung trong thanh bên.


Chỉnh sửa 10/1/2015: Kể từ Yosemite (10.10), có một API Sync Sync mới, bị xử phạt để tích hợp, như các doovers chỉ ra trong một câu trả lời khác. Trong El Capitan (10.11), Bảo vệ tính toàn vẹn hệ thống sẽ không cho phép cách tiếp cận kiểu mach_inject cũ.


5
Google nên làm tương tự với Drive :)
Baumr

Tích hợp Dropbox Finder hoạt động với El Capitan. Tôi có các menu ngữ cảnh, huy hiệu và biểu tượng tùy chỉnh trong thanh bên. Phiên bản nào của khách hàng bạn đang sử dụng?
Matteo

@Matteo: Thật thú vị, khi tôi đi kiểm tra phiên bản (v3.10.6), nó bắt đầu hoạt động! Tôi đảm bảo với bạn, nó đã không làm việc trước đây. Thú vị ...
jmk 1/10/2015

1
@Matteo: Aha, đọc hiểu thất bại về phía tôi. Ai đó đã đăng với API cập nhật bên dưới. Cảm ơn vì sự đúng đắn của bạn!
jmk

10

Theo tài liệu cho Tiện ích mở rộng đồng bộ hóa Finder :

Bạn cũng có thể sử dụng API của điểm mở rộng để thêm nút thanh công cụ vào cửa sổ Finder hoặc biểu tượng thanh bên cho thư mục được theo dõi .

Tôi đoán đây là những gì Dropbox sử dụng để đạt được điều này và một số / tất cả các chức năng khác được hỗ trợ bởi tiện ích mở rộng này. Ví dụ, bạn cũng có thể:

  • Đăng ký một bộ thư mục để theo dõi.
  • Nhận thông báo khi người dùng bắt đầu hoặc dừng duyệt nội dung của thư mục được theo dõi. Ví dụ: tiện ích mở rộng nhận thông báo khi người dùng mở thư mục được theo dõi trong Finder hoặc trong hộp thoại Mở hoặc Lưu.
  • Thêm, xóa và cập nhật huy hiệu và nhãn trên các mục trong thư mục được theo dõi.
  • Hiển thị menu theo ngữ cảnh khi người dùng Control-click vào một mục trong thư mục được theo dõi.
  • Thêm một nút tùy chỉnh vào thanh công cụ của Finder.

Chỉnh sửa:

Như Mugen đề cập dưới đây, El Capitan sẽ không cho phép tiêm mã khiến FinderSync trở thành lựa chọn duy nhất trong tương lai. Với FinderSync chỉ khả dụng từ 10.10+, tùy chọn tốt nhất sẽ là trường hợp như:

if (floor(NSAppKitVersionNumber) < NSAppKitVersionNumber10_10) { ... }

Điều đó dường như mâu thuẫn với câu trả lời hàng đầu, bất kỳ ý kiến?
Baumr

3
@Baumr Tôi chỉ suy đoán ở đây nhưng tôi cho rằng câu trả lời của jmk có thể đúng vào thời điểm đó (và vẫn có thể) nhưng hiện tại nhiều khả năng là dropbox sử dụng Tiện ích mở rộng đồng bộ hóa Finder 'chính thức' kể từ khi phát hành Yosemite. Thêm vào đó tôi sẽ nghĩ rằng đối với ai đó đang cố gắng đạt được chức năng tương tự trong ứng dụng của riêng họ, thì đây sẽ là một giải pháp hữu ích hơn vì nó được ghi lại.
doovers 31/05/2015

Âm thanh như bạn đúng - có cách nào để xác nhận?
Baumr

2
Ở El-Capitan, chúng tôi sẽ không thể tiêm mã nữa và vì vậy tùy chọn FinderSync là duy nhất
Mugen

1
@Baumr vì tiện ích mở rộng FinderSync chỉ khả dụng trong 10.10+, tôi nghĩ rằng tốt nhất nên xử lý nó:if (floor(NSAppKitVersionNumber) < NSAppKitVersionNumber10_10) { ... }
Mugen

2

Cài đặt Ứng dụng Trình tìm kiếm Xtra mới nhất từ ​​- http://www.trankOUND.com/xtrafinder/

Bật "Hiển thị biểu tượng đầy màu sắc trong SideBar" Nó nằm bên dưới hộp văn bản "Độ rộng tối đa"

Đối với các biểu tượng khác trong Sidebar

Thay thế các tệp ở đây: Mỗi tệp ICNS phải hỗ trợ các kích thước sau:

  • 16x16 72 DPI
  • 18x18 72 DPI
  • 32x32 144 và 72 DPI
  • 36x36 144 DPI
  • 64x64 144 DPI

Nếu bạn đã thêm một thư mục tùy chỉnh vào thanh bên, bạn cũng có thể thay đổi biểu tượng của nó. Hãy để chúng tôi nói rằng tên thư mục được gọi là "Phần mềm" Chuẩn bị tệp ICNS với tên SidebarSoftwares.icns trong thư mục được đề cập ở trên.

Về cơ bản, tệp icns cần được đặt tên SidebarFoldername.icns trong đó Sidebar Vẫn không đổi và bạn nhập tên người dùng có liên quan.

Dành cho DropBox

Áp dụng tệp ICNS cho / Users / admin / Dropbox /Appluggest/Dropbox.app /Appluggest/Dropbox.app/Contents/Resource/box.icns (cần thay thế tệp này bằng tệp bạn muốn)

Biểu tượng SideBar của DropBox

Điều hướng đến / L Library /DropboxHelperTools /Dropbox_u502 /DropboxBundle.bundle / Content / Resource

Ở đây bạn cần thay thế như sau: tool.tiff (32x32 pixel 72 DPI)

sidebar.tiff (64x64 pixel 72 DPI)

bối cảnhmenu.tiff (32x32 pixel 72 DPI)

thanh công cụ_lộng.png (19x19 pixel 72 DPI)

sidebar_blue.png (16x16 pixel 72 DPI)


Có một chút về việc thêm biểu tượng thanh bên tùy chỉnh cho một thư mục yêu cầu ứng dụng được cài đặt, hoặc nó có thể tự thực hiện được không? Ngoài ra, bạn có biết nếu điều này sẽ hoạt động với Yosemite khi nó được phát hành?
dhruveonmars

1
Tôi chỉ thử cách này để thêm biểu tượng của riêng tôi và nó không hoạt động. Sau đó tôi đã cài đặt ứng dụng SideEffect làm cho các biểu tượng đầy màu sắc và biểu tượng tùy chỉnh của tôi xuất hiện. Gỡ cài đặt ứng dụng và biểu tượng của tôi đã biến mất.
Pahnev

1

Dropbox sử dụng kỹ thuật tiêm mã Finder để tùy chỉnh biểu tượng thanh bên (và thêm các mục vào menu chuột phải và thêm nút vào thanh trên cùng của Finder). Và không có cách nào tốt để tùy chỉnh biểu tượng thanh bên kể từ ngày 10.7.

Trong Yosemite, Apple đã thêm một số API để có thể tùy chỉnh menu nhấp chuột phải và mục thanh công cụ của Finder, nhưng tôi không chắc chắn về thanh bên.


Nói về Yosemite, tôi tin rằng Dropbox hiện sử dụng tiện ích mở rộng Finder Sync để tích hợp với Finder ... nhưng tôi không thấy bất cứ điều gì rõ ràng trong tài liệu của tính năng đó về việc cung cấp biểu tượng thanh bên tùy chỉnh (biểu tượng thanh công cụ tùy chỉnh được hỗ trợ) ... Vì vậy, hack có thể vẫn còn tại chỗ.
Dan J

Chắc chắn, đó được gọi là phần mở rộng đồng bộ Finder. Nhưng nó không cho phép biểu tượng thanh bên. Tuy nhiên tôi đọc tài liệu theo đường chéo, vì vậy có lẽ đã bỏ lỡ một cái gì đó.
Nickolay Olshevsky

0

Trình cài đặt dropbox đặt một cái ở đó và trình cài đặt google drive thì không.

Chỉ cần kéo một thư mục vào thanh bên và nó sẽ dính, không cần trình cài đặt.


10
Tôi nghĩ rằng câu hỏi là cụ thể về biểu tượng.
asmeker

Vâng, điều này không giải quyết được câu hỏi
Baumr

2
Tôi sẽ bỏ phiếu này nếu tôi có thể. Đó chỉ là mã và trình cài đặt dropbox cài đặt tính năng này khi nó chạy trong nền. Nó giống như có một bữa tiệc và bạn mời hai khách. Một người để lại danh thiếp của họ trên tủ quần áo của bạn, người kia thì không. Đó không phải là chủ sở hữu đã đưa ra lựa chọn, đó là những vị khách cư xử khác biệt.
bmike

2
@bmike, phần thứ hai của câu hỏi là: "Làm cách nào tôi có thể tùy chỉnh các biểu tượng được sử dụng bởi các thư mục trong thanh bên?"
Baumr

0

Tôi đã có thể nhận biểu tượng Tải xuống gốc trong siderbar cho thư mục Tải xuống đã di chuyển. Quá trình không dễ dàng và nó được mô tả ở đây: https://github.com/w0lfschild/colorfulSidebar_9/issues/1 Nó phụ thuộc vào mySIMB và colorsSidebar. 3 năm trước tôi đã từ bỏ việc thiết lập biểu tượng Tải xuống gốc. Hôm nay tôi quyết định cho một cơ hội khác và cuối cùng nó hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.