यहां 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!
}
}
स्रोत
2017-10-06 12:01:55
NSTouchBar प्रलेखन से: "टच बार के दाईं ओर सिस्टम हमेशा-उपलब्ध नियंत्रण पट्टी की आपूर्ति नियंत्रण पट्टी प्रदर्शन चमक, ध्वनि की मात्रा, सिरी के लिए मानक नियंत्रण करने के लिए उपयोगकर्ता पहुँच देता है,। और इसी तरह। आपके ऐप के बार कंट्रोल स्ट्रिप के बाईं ओर दिखाई देते हैं। (उपयोगकर्ता कंट्रोल स्ट्रिप को छिपाने का विकल्प चुन सकता है, जो पूरे टच बार चौड़ाई को सबसे ज्यादा ऐप देता है।) "इसका तात्पर्य है कि आपके ऐप के बार हमेशा दिखाई देते हैं बाएं और दाईं ओर आइटम संभव नहीं हैं। आप कंट्रोल स्ट्रिप बार आइटम तक भी नहीं पहुंच सकते हैं। – rocky