2015-09-27 85 views
0

在Objective-C中編寫的Mac OSX應用程序中禁用文本替換的過程是什麼?在Mac應用程序中禁用文本替換

我是使用大量NSTextFields的,從我已經找到了NSTextFields似乎並不具有相同的方法NSTextViews禁用此
正在調試的應用程序:

  • setAutomaticQuoteSubstitutionEnabled: NO
  • setAutomaticTextReplacementEnabled:NO

這雖然我想要實現的應用程序中的所有文本字段有啥再修改e爲了得到這個工作? 請注意,用戶不應該能夠在任何時候啓用此功能,還應該覆蓋系統首選項 - >鍵盤 - >文本中的全局設置。

+0

基本上我想要實現切換的方法同樣的編輯 - 替換 - 文本在應用程序啓動時替換。 –

回答

0

當文本字段具有鍵盤焦點時(當它是窗口的第一個響應者時),將在文本字段頂部的窗口中添加文本視圖併爲其處理編輯。這個文本視圖被稱爲field editor

有很多地方可以自定義字段編輯器。由於您有許多文本字段,因此您可能需要使用窗口委託方法-windowWillReturnFieldEditor:toObject:。它可以創建一個NSTextView,將其fieldEditor屬性設置爲true,將automaticTextReplacementEnabled設置爲false,並返回該值。它應該只能在第一次請求時創建該對象,然後將其返回給所有調用以提高效率。

其它方法包括使用自定義NSWindow子類覆蓋-fieldEditor:forObject:或使用自定義NSTextFieldCell類文本字段,它覆蓋-setUpFieldEditorAttributes:

相關問題