2016-12-01 4 views
14

TouchSwitcher lightscreen और मात्रा आइटम के बगल में आइटम जोड़ने के अनुप्रयोग: https://hazeover.com/touchswitcher.html enter image description hereदाईं ओर टच बार के नियंत्रण केंद्र में कोई आइटम कैसे प्राप्त करें?

वहाँ स्पर्श बार के दाईं क्षेत्र पर नियंत्रण पट्टी में एक आइटम प्रदर्शित करने के लिए एक समाधान है?

मुझे इसके बारे में आधिकारिक दस्तावेज़ीकरण में कोई सहायता नहीं मिल रही है ... कृपया मेरी मदद करें!

+0

NSTouchBar प्रलेखन से: "टच बार के दाईं ओर सिस्टम हमेशा-उपलब्ध नियंत्रण पट्टी की आपूर्ति नियंत्रण पट्टी प्रदर्शन चमक, ध्वनि की मात्रा, सिरी के लिए मानक नियंत्रण करने के लिए उपयोगकर्ता पहुँच देता है,। और इसी तरह। आपके ऐप के बार कंट्रोल स्ट्रिप के बाईं ओर दिखाई देते हैं। (उपयोगकर्ता कंट्रोल स्ट्रिप को छिपाने का विकल्प चुन सकता है, जो पूरे टच बार चौड़ाई को सबसे ज्यादा ऐप देता है।) "इसका तात्पर्य है कि आपके ऐप के बार हमेशा दिखाई देते हैं बाएं और दाईं ओर आइटम संभव नहीं हैं। आप कंट्रोल स्ट्रिप बार आइटम तक भी नहीं पहुंच सकते हैं। – rocky

उत्तर

4

अपघटन के बाद, मैंने कुछ एपीआई को डीएफआरफाउंडेशन नामक एक फ्रेमवर्क में खोजा/सिस्टम/लाइब्रेरी/प्राइवेटफ्रेमवर्क, और संबंधित विधि DFRElementSetControlStripPresenceForIdentifier। मुझे आगे बढ़ना काफी मुश्किल लगता है, इसलिए मैं आपको केवल यह बताने के लिए उत्तर देता हूं कि इसके लिए एपीआई एक निजी ढांचे में है। उम्मीद है कि कोई दिन किसी रहस्य को प्रकट करेगा।

+0

धन्यवाद। मैं भी रास्ता खोजने की कोशिश कर रहा हूं। – jimwan

3

यहां what I use है। NSView पास करें और controlStrippify() फ़ंक्शन पर अपनी पसंद का पहचानकर्ता पास करें। स्विफ्ट का उपयोग कर सटीक वही काम करने के मेरे प्रयासों के परिणामस्वरूप दुर्घटनाएं हुईं, बंदरगाहों का स्वागत है :)। https://github.com/a2/touch-baer से प्रेरणा।

@import Cocoa; 
@import Foundation; 

// See: https://github.com/a2/touch-baer 
extern void DFRSystemModalShowsCloseBoxWhenFrontMost(BOOL); 
extern void DFRElementSetControlStripPresenceForIdentifier(NSString *string, BOOL enabled); 

@interface NSTouchBarItem() 
+ (void)addSystemTrayItem:(NSTouchBarItem *)item; 
@end 

@interface NSTouchBar() 
+ (void)presentSystemModalFunctionBar:(NSTouchBar *)touchBar systemTrayItemIdentifier:(NSString *)identifier; 
@end 

void controlStrippify(NSView *view, NSString *identifier) { 
    if (@available(macOS 10.12.2, *)) { 
    DFRSystemModalShowsCloseBoxWhenFrontMost(YES); 

    NSCustomTouchBarItem *touchBarItem = [[NSCustomTouchBarItem alloc] initWithIdentifier:identifier]; 
    touchBarItem.view = view; 
    [NSTouchBarItem addSystemTrayItem:touchBarItem]; 
    DFRElementSetControlStripPresenceForIdentifier(identifier, YES); 
    } else { 
    // Fail! 
    } 
} 
+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/17548296) – the4kman

+0

@ 4kman, कोड स्निपेट जोड़ा गया। –

+0

क्या 'DFRSystemModalShowsCloseBoxWhenFrontMost' करता है? ऐसा लगता है कि बूल वैल्यू की आपूर्ति या पूरी लाइन की उपस्थिति के बावजूद कोई प्रभाव नहीं पड़ता है – ReDetection

संबंधित मुद्दे