2015-09-27 90 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:

相关问题