2012-10-23 26 views
8

我試圖在10.7+上模擬Mail.app和Finder.app的標記化搜索功能,其中看起來是一個NSSearchField,左邊是搜索放大鏡圖標,右邊是取消(x)按鈕,但在搜索字段中也包含了令牌。使NSSearchField使用NSTokenFieldCell?

NSSearchField with tokens

有沒有什麼辦法讓NSSearchField使用NSTokenFieldCell而不是NSSearchFieldCell的?我嘗試在NSSearchField實例上調用-setCell:,該實例可以在調試器中調用po [searchField cell]來證明該工作並顯示爲將該單元換出,但搜索字段的繪圖中斷且未繪製文本字段。

我以正確的方式接近這一點,還是有更好的方法來做到這一點?謝謝!

更新2016年10月25日:使用輔助功能檢查我發現,搜索和郵件使用混合私有子類:

  • SGTSearchField : NSSearchField
    • SGTSearchFieldCell : NSSearchFieldCell
    • SGTTokenFieldCell : NSTokenFieldCell

這些是名爲Suggestions.framework的私有框架的一部分。希望蘋果將來會把這些課程公諸於衆。如果您希望公開此功能,請務必登錄file a radar

+0

我試圖實現標記化搜索欄時遇到了同樣的問題。由於我之前使用的是NSSearchField,我還在尋找將NSSearchField和NSTokenField結合起來的方法。你有沒有得到任何解決方案? –

回答

0

最佳答案我給你的兩個是簡單地去一個NSTokenField。您可能可以修改它以顯示小搜索圖標。但是,如果這不是決定性的,你可以從NSTokenField獲得許多標記化的功能。

相關問題