2012-07-12 10 views
6

menü bilgi alabilirsiniz. İçerik menüsünün görüntülenmesi iyi yapabilir, ancak şu anda aktif olan uygulamanın menü çubuğu öğelerini alamıyorum. Şu anda etkin uygulamaların adını almak için [[[NSWorkspace sharedWorkspace] runningApplications] filteredArrayUsingPredicate:] kullanıyorum, ancak NSRunningApplication değerli küçük diğer bilgileri içerir gibi görünüyor. Uygulama menüleri hakkında harici bir uygulamadan bilgi almamın bir yolu var mı?Objective-C: Ben kullanıcı bazı kısayol bastığında, o anda etkin uygulamanın menü çubuğu öğeleri içeren bir bağlamsal menü görüntüleyen bir Mac OS menüsü ekstra uygulama yazmak çalışıyorum dış uygulama

GÜNCELLEME:

SystemEventsApplication* sevApp = [SBApplication applicationWithBundleIdentifier:@"com.apple.systemevents"]; 
    SystemEventsProcess* proc = [[sevApp applicationProcesses] objectWithName:appName]; 

    for (SystemEventsMenuBar* menuBar in proc.menuBars) { 
     for (SystemEventsMenuBarItem* menuBaritem in menuBar.menuBarItems) { 
      NSLog(@"%@", menuBaritem.name); 
     } 
    } 

uygulamanın menü çubuğundan mevcut menülerden bir listesini yazdıracaktır: ScriptingBridge çerçevesini kullanma

AppleScript kullanarak mutluysan, oldukça iyi iş gibi görünüyor . Bir menü öğesi gibi tıklayarak simüle etmek AppleScript kullanabilirsiniz http://robnapier.net/blog/scripting-bridge-265

+0

** ** Sana +1 den fazlasını vermek isteriz! TEŞEKKÜRLER, ama nasıl bilemeyiz. '/ System/Library/CoreServices/System Events.app'ı bir başlığa derlemek muhtemelen Xcode ile yaptığım en garip şey ama hey, işe yarıyor! Kısayol veya 'keyEquivalent' özelliği bir' SystemEventsMenuItem' içinde gizli olduğunu bilmek ister misiniz? – epologee

cevap

0

:

Bu

kullanışlı çok oldu ... bağlamsal menü almak için bir yol bulamadık, bu yüzden bu henüz cevap aramayacağım here gösterilen, ancak uygulamada kodlanmış isimleri zaten sahip olması gereken bu yöntemi kullanmak için, tüm menü öğelerinin adlarını dinamik olarak almak mümkün olup olmadığından emin değilim.

+0

Hey, el yazısı ipucu için teşekkürler! Bazı kazma yaptım, [Bu makale] (http://hints.macworld.com/article.php?story=20111208191312748) hangi tam olarak ne istediğimi bir el yazısı yolu vardır bulundu ... Ancak bir Objective-c yöntemi arıyor. Bir el yazmasını benim uygulamam haline getirmek çok dağınık olabilir. – alaroldai

+0

AppleScript'i kakao uygulamalarından çok fazla sorun olmadan kullanabilirsiniz, bkz. [NSAppleScript] (https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSAppleScript_Class/Reference/Reference.html). Belli ki, düz objec kadar güzel değil ama saf objede basit bir yerleşik çözüm bulursanız bilmiyorum. Yine de iyi şanslar – stonesam92

İlgili konular