2011-12-10 28 views
1

我的Cocoa應用程序使用NSTextView。它是一種編輯器應用程序。現在在10.6中有字符替換,所以(c)變成版權。我的應用程序沒有在10.6中進行替換。我沒有爲此添加任何附加代碼。但在10.7替補正在發生。這對剛剛遷入獅子的客戶造成混亂。我知道我可以編寫一個applescript來禁用語言和文本中的複選框。但是還有其他的選擇嗎? 我也試過 默認寫入-g WebAutomaticDashSubstitutionEnabled -bool false。在Lion中禁用替換

但這也行不通。

+1

這是一個愚蠢的http://stackoverflow.com/questions/8144784/turn-off-os-x-10-7-lions-auto-correct-feature-programmatically哪有你的答案。 –

+0

@JamesWilliams:不,它不是這個問題的重複。這個問題是關於自動糾錯的問題;這個人問關於替代。它們具有不同的特徵:正如問題所述,替換是在10.6中引入的,而自動糾正是在10.7中引入的。 –

+0

@PeterHosey - 正確。 – Prashant

回答

5

在Cocoa中,替換功能稱爲「自動文本替換」。要在NSTextView中禁用它,請發送文本視圖a setAutomaticTextReplacementEnabled: message

但是,您應該考慮在應用程序中禁用它是否合適。如果您的編輯器旨在用於代碼或數據文件,那麼是的,您可能應該禁用它。但是,如果要編輯文本文件,最好將其設置爲默認值,並讓用戶自己發現該功能(如果不需要,可以將其自行關閉)。如果您的應用程序是可用於文本或代碼的文本編輯器,則可以根據文件的格式進行設置 - 例如,爲Markdown啓用它,但爲Python禁用它。

WebAutomaticDashSubstitutionEnabled首選項不相關,因爲正如其名稱所述,它是WebKit功能。 NSTextView是AppKit的一部分,不使用WebKit。此外,在NSTextView中也支持自動破折號替換,它是a different feature