我試圖在10.7+上模擬Mail.app和Finder.app的標記化搜索功能,其中看起來是一個NSSearchField,左邊是搜索放大鏡圖標,右邊是取消(x)按鈕,但在搜索字段中也包含了令牌。使NSSearchField使用NSTokenFieldCell?
有沒有什麼辦法讓NSSearchField使用NSTokenFieldCell而不是NSSearchFieldCell的?我嘗試在NSSearchField實例上調用-setCell:
,該實例可以在調試器中調用po [searchField cell]
來證明該工作並顯示爲將該單元換出,但搜索字段的繪圖中斷且未繪製文本字段。
我以正確的方式接近這一點,還是有更好的方法來做到這一點?謝謝!
更新2016年10月25日:使用輔助功能檢查我發現,搜索和郵件使用混合私有子類:
SGTSearchField : NSSearchField
SGTSearchFieldCell : NSSearchFieldCell
SGTTokenFieldCell : NSTokenFieldCell
這些是名爲Suggestions.framework
的私有框架的一部分。希望蘋果將來會把這些課程公諸於衆。如果您希望公開此功能,請務必登錄file a radar。
我試圖實現標記化搜索欄時遇到了同樣的問題。由於我之前使用的是NSSearchField,我還在尋找將NSSearchField和NSTokenField結合起來的方法。你有沒有得到任何解決方案? –