Biểu tượng thanh menu


8

Có cách nào dễ dàng để tôi có thể thêm các biểu tượng tùy chỉnh vào khu vực trạng thái thanh menu không? Lý tưởng nhất là một cái gì đó như Growl (ví dụ, nơi bạn có thể thực hiện một lệnh) nhưng thay vì thông báo, chỉ hiển thị các biểu tượng trong thanh menu.

Tôi chủ yếu tìm cách vẽ những con số mà tôi sử dụng để cảnh báo tôi về những điều khác nhau. Ví dụ: tôi có thể định cấu hình ứng dụng email của mình để chạy lệnh / AppleScript để cập nhật số khi có một loại email nhất định đến.

Một cái gì đó như thế này:

img

Câu trả lời:


4

Tôi sẽ đề nghị bắt đầu với chủ đề này , mô tả bằng cách sử dụng các cuộc gọi Cacao Objective-C từ bên trong AppleScript. Có một dự án Xcode ví dụ ở đây .

Launch là một ứng dụng hoàn chỉnh được viết bằng AppleScript có chức năng thực hiện việc này. Tập tin dự án Xcode của nó là ở đây .

Tiền đề cơ bản là tạo các thể hiện NSMothyItem và thêm chúng vào NSStatusBar của hệ thống:

set statusMenu to (NSMenu's alloc)'s initWithTitle_("Launch")
-- (build and do stuff with the statusMenu here)
set sysStatusBar to NSStatusBar's systemStatusBar
set statusItem to sysStatusBar's statusItemWithLength_(32)
tell statusItem to setMenu_(statusMenu)
tell statusItem to setHighlightMode_(1)
set menuImage to NSImage's imageNamed_("icon.png")
tell statusItem to setImage_(menuImage)

Trích đoạn AppleScript từ mã nguồn của Launch, Bản quyền © Lee Hanken


Liên kết hiện đang thiếu trong năm 2018
davidfrancis

3

Được rồi, tôi đã làm một ứng dụng cho việc này. Đó là trên GitHub: 0942v8653 / ScriptableStatusBar . Chỉ cần giữ ứng dụng chạy và sử dụng sbarcông cụ để thiết lập và xóa các mục.

Như người đọc nói:

sbar set face 😃 'Bye!:sbar remove face'

Tạo một khuôn mặt trong thanh trạng thái. Menu sẽ có một tùy chọn Bye!chạy sbar remove facethoát khỏi menu mà nó tạo ra.


Bạn có thể tải xuống một phiên bản được biên dịch từ https://github.com/0942v8653/ScriptableStatusBar/release .


Đẹp, nhưng tại sao Bạn đăng ký tất cả các thông báo được phân phối thay vì thông báo có tên: "io.github.0942v8653.ScriptableStatusBar"?
Mateusz Szlosek

@MateuszSzlosek Câu hỏi hay. Sẽ sửa sau: P
0942v8653

1
@MateuszSzlosek Đã sửa.
0942v8653

Chức năng của ứng dụng của bạn dường như rất giống với "BitBar" (đã đề cập ở trên); trong khi biểu tượng của bạn có biểu tượng (không chắc là BitBar có) hay không, ngôn ngữ kia cho phép gần như mọi ngôn ngữ kịch bản (có tiêu chuẩn) dễ dàng hiển thị đầu ra của nó trong thanh menu bên phải. Tôi sử dụng điều đó để "osascript" một tập lệnh apple "trả về" số lượng không gian làm việc hiện tại tôi đang sử dụng (như trong các phiên bản HĐH cũ). Các tập lệnh chỉ đơn giản được đặt vào một thư mục plugin & EXTRA! một phần của tên (ví dụ xx.3s.sh => 3 giây) chỉ định khoảng thời gian lặp lại. RẤT hữu ích để hiển thị trạng thái !!!
clemsam lang

2

Bạn cũng có thể sử dụng RubyCocoa :

require "osx/cocoa"
include OSX

app = NSApplication.sharedApplication
statusitem = NSStatusBar.systemStatusBar().statusItemWithLength(NSVariableStatusItemLength)
statusitem.setTitle("aa")
app.run


0

Có, bạn có thể tạo ứng dụng Cacao cho mục đích này trong Xcode. Không, bạn không thể làm điều đó với applescript.

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.