我正在研究一個需要特殊文本字段來編輯字節值的項目。我目前的解決方案是專門只讀文本框和「...」按鈕,打開酥料餅如下圖所示的圖像:如何處理NSTextField子類的第一響應者狀態?
現在我儘量讓我的解決方案更加人性化。我的目標是:
- 如果文本字段獲得第一個響應者狀態,彈出窗口會自動打開。
- 選擇完整文本。
- 如果用戶使用標籤離開文本字段或選擇彈出框外的任何字段,彈出窗口應自動關閉。
- 如果用戶鍵入任何有效的編號和尾碼字節值被更新(例如「10 GB」)
目前我正在一點點無知。我的問題是這些:
- 當文本字段得到第一響應者時,子類中檢測的最佳位置在哪裏?
- 如何檢測領域辭職是第一響應者?
- 還有其他更簡單的解決方案嗎?
更好的設計可能是一個NSValueTransformer是採用NSByteCountFormatter和其他一些神奇的按摩VA略。 –
@GerdK我已經使用NSByteCountFormatter將字節值轉換爲文本。但是,這隻能從字節值到文本,但不能返回。彈出窗口還提供了一個對數滑塊,可以簡化高數值的輸入。 – Flovdis
這就是爲什麼我建議使用NSValueTransformer。它可以將輸入如10k轉換爲10,000等,在它的-reverseTransformedValue:方法中。然後在-transformedValue:方法中使用您的NSByteCountFormatter。這避免了連接到它的彈出窗口和凌亂的邏輯。 –