ไอคอนแถบเมนูสคริปต์


8

มีวิธีง่าย ๆ ที่ฉันสามารถเพิ่มไอคอนแบบกำหนดเองลงในพื้นที่สถานะของแถบเมนูหรือไม่ สิ่งที่ดีเลิศเช่น Growl (เช่นที่ซึ่งคุณสามารถเรียกใช้งานคำสั่ง) แต่แทนที่จะเป็นการแจ้งเตือนเพียงแสดงผลไอคอนในแถบเมนู

ฉันต้องการดึงตัวเลขที่ฉันใช้เพื่อเตือนฉันถึงสิ่งต่าง ๆ เป็นหลัก ตัวอย่างเช่นฉันสามารถกำหนดค่าไคลเอนต์อีเมลของฉันเพื่อเรียกใช้คำสั่ง / AppleScript เพื่ออัปเดตตัวเลขเมื่อมีอีเมลบางประเภทมาถึง

บางสิ่งเช่นนี้

img

คำตอบ:


4

ฉันขอแนะนำให้เริ่มต้นด้วยเธรดนี้ซึ่งอธิบายการใช้การโทร Cocoa Objective-C จากภายใน AppleScript มีตัวอย่าง Xcode โครงการคือที่นี่

และการเปิดตัวเป็นแอปพลิเคชั่นที่สมบูรณ์ที่เขียนใน AppleScript ซึ่งทำหน้าที่นี้ได้ แฟ้มโครงการ Xcode ของมันคือที่นี่

หลักฐานขั้นพื้นฐานคือการสร้างอินสแตนซ์ NSMenuItem และเพิ่มลงใน NSStatusBar ของระบบ:

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)

ข้อความที่ตัดตอนมาจาก AppleScript จากซอร์สโค้ดของ Launch ลิขสิทธิ์© Lee Hanken


ลิงก์หายไปในปี 2018
davidfrancis

3

โอเคฉันทำแอพสำหรับสิ่งนี้ มันอยู่บน GitHub: 0942v8653 / ScriptableStatusBar เพียงแค่ให้แอปทำงานต่อไปและใช้sbarเครื่องมือเพื่อตั้งค่าและลบรายการต่างๆ

ในขณะที่ readme พูดว่า:

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

สร้างใบหน้าในแถบสถานะ เมนูจะมีตัวเลือกBye!ที่จะsbar remove faceกำจัดเมนูที่สร้างขึ้น


คุณสามารถดาวน์โหลดรุ่นที่รวบรวมจากhttps://github.com/0942v8653/ScriptableStatusBar/releases


เยี่ยมมาก แต่ทำไมคุณลงทะเบียนการแจ้งเตือนแบบกระจายทั้งหมดแทนที่จะเป็นชื่อ: "io.github.0942v8653.ScriptableStatusBar"
Mateusz Szlosek

@MateuszSzlosek คำถามที่ดี จะแก้ไขในภายหลัง: P
0942v8653

1
@MateuszSzlosek แก้ไขแล้ว
0942v8653

ฟังก์ชั่นการทำงานของแอพของคุณคล้ายกับ "BitBar" (ดังที่ได้กล่าวไว้ข้างต้น); ในขณะที่คุณสมบัติของคุณมีไอคอน (ไม่แน่ใจว่าเป็น BitBar หรือไม่) ส่วนอีกอันจะอนุญาตให้ใช้ภาษาสคริปต์เกือบทุกภาษา (ที่มี std-out) เพื่อแสดงผลได้อย่างง่ายดายในแถบเมนูด้านขวา ฉันใช้มันเพื่อ "osascript" แอปเปิ้ลสคริปต์ที่ "ส่งคืน" จำนวนพื้นที่ทำงานปัจจุบันที่ฉันใช้งานอยู่ (เช่นในเวอร์ชัน OS เดิม) สคริปต์จะถูกวางไว้ในโฟลเดอร์ปลั๊กอิน & EXTRA! ส่วนของชื่อ (เช่น xx.3s.sh => 3 วินาที) ระบุช่วงเวลาการทำซ้ำ มีประโยชน์มากสำหรับการแสดงสถานะ !!!
clemsam lang

2

คุณยังสามารถใช้RubyCocoa :

require "osx/cocoa"
include OSX

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


0

ใช่คุณสามารถสร้างแอป Cocoa เพื่อจุดประสงค์นี้ใน Xcode ไม่ได้คุณไม่สามารถใช้ applescript ได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.