我正在嘗試構建一個NSTextView,它可以在用戶鍵入時自動將其轉換爲美麗的RTF樣式文本的「標記」輸入。如何實現執行RTF轉換的即時標記的NSTextView
這個想法是讓用戶以「純文本」格式輸入文本,而是在現場「美化」它,
H1 A quick list:
* first item
* second item
將被翻譯成帶有標題字體的第一行,然後是帶項目符號的列表。
我發現了很多潛在的方法,但文本系統非常複雜(有理由),如果已經有內置的東西,我不想開始「自己做飯」。順便說一句,我會很高興與Snow Leopard only API。
我首先想到的是「數據檢測器」,但我找不到這樣做的公共API。
已經到達了路的盡頭,我轉向新的「文本輸入源API」。這可以做各種各樣的事情,但WWDC 2006演示文稿「掌握文本輸入」的「數據驅動的輸入方法」部分在我的上下文中似乎很有趣。除了單張幻燈片之外,任何地方都不存在任何東西,所以它又是一個死路一條。
最後,我看看NSSpellChecker類,它也應該提供完成功能和自動更正..但我不知道這可以如何重新用於我的要求。
此刻,我很想只是手動重新解析整個NSTextStorage並進行更改自己當用戶停止打字..但我敢肯定有解決這個論壇聰明頭..
任何意見或指針在正確的方向將不勝感激。
謝謝。我一直在玩NSTextDelegate,它有效,但目前相當緩慢,因爲我現在使用textDidChange:通知,並且我每次都重新解析整個事物。 – 2009-12-07 17:04:10
不解析整個事物每次用戶類型肯定有助於提高性能。 :-)鍵入中最輕微的停頓可以/通常會觸發-textDidChange:所以你希望你的解析/樣式代碼能夠儘可能高效地執行,儘可能地管理。 – 2009-12-07 20:26:17