2016-12-01 54 views
14

TouchSwitcher添加lightscreen和體積項旁邊項目的應用: https://hazeover.com/touchswitcher.html enter image description here如何在右側的Touch Bar控制中心獲取物品?

是否有觸摸欄右側區域顯示項目到控制帶材中的溶液?

我在官方文檔中找不到任何幫助... 請幫幫我!

+0

從NSTouchBar文件:「在觸摸條的右側時,系統供給始終可用的控制條上的控制條給予標準控制用戶訪問用於顯示亮度,音量,Siri的。 (用戶可以選擇隱藏控制條,這會給最前面的應用程序提供整個觸摸條的寬度)。「這意味着您的應用程序的條總是顯示在控制條的左側左邊和右邊的項目是不可能的。您甚至無法訪問控制條欄項目。 – rocky

回答

4

反編譯後,我在一個框架中發現了一些名爲DFRFoundation的API,位於/ System/Library/PrivateFrameworks下,並且有一個相關的方法DFRElementSetControlStripPresenceForIdentifier。我覺得很難進一步,所以我在這裏回答,只是讓你知道這個API是在一個私人框架。希望有一天有人會透露祕密。

+0

謝謝。我也試圖找到方法。 – jimwan

3

這是what I use。將NSView和您選擇的標識符傳遞給controlStrippify()函數。我試圖用Swift做同樣的事情導致崩潰,端口歡迎:)。來自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

儘管此鏈接可能回答此問題,但最好在此處包含答案的基本部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/17548296) – the4kman

+0

@ the4kman,添加了代碼片段。 –

+0

什麼'DFRSystemModalShowsCloseBoxWhenFrontMost'呢?無論提供的布爾價值還是整條線的存在,似乎都不會產生任何效果 – ReDetection

相關問題