Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos NSTextView';OS X v10.11中不推荐使用s insertText方法。什么是替代品?_Macos_Cocoa_Nstextview_Appkit - Fatal编程技术网

Macos NSTextView';OS X v10.11中不推荐使用s insertText方法。什么是替代品?

Macos NSTextView';OS X v10.11中不推荐使用s insertText方法。什么是替代品?,macos,cocoa,nstextview,appkit,Macos,Cocoa,Nstextview,Appkit,我在AppKit API参考中看到,insertText方法在OS X v10.11中被弃用。我应该用什么来代替呢?文档上说 此方法是用户键入的文本进入NSTextView的方法。有关更多信息,请参阅NSInputManager类和NSTEmput协议规范。 在NSTEUTE中有一个注释: 重要 NSTEMIPUT协议将被弃用。请使用OS X v10.5中引入的NSTEMPUTCLIENT协议,如NSTEMPUTCLIENT协议参考中所述 在NSPUTClient协议中有一个方法 - (voi

我在AppKit API参考中看到,
insertText
方法在OS X v10.11中被弃用。我应该用什么来代替呢?

文档上说

此方法是用户键入的文本进入
NSTextView
的方法。有关更多信息,请参阅
NSInputManager
类和
NSTEmput
协议规范。

NSTEUTE
中有一个注释:

重要

NSTEMIPUT
协议将被弃用。请使用OS X v10.5中引入的
NSTEMPUTCLIENT
协议,如
NSTEMPUTCLIENT协议参考
中所述

NSPUTClient
协议中有一个方法

- (void)insertText:(id)aString
  replacementRange:(NSRange)replacementRange
这似乎是合适的替代方法

- (void)insertText:(id)aString
新方法

- (void)insertText:(id)aString replacementRange:(NSRange)replacementRange
在实践中使用新的insertText方法

// Start String: abcdef

// Result: a++bcdef
[NSTextView insertText:@"++" replacementRange:NSMakeRange(1, 0)];

// Result: a++def
[NSTextView insertText:@"++" replacementRange:NSMakeRange(1, 2)];

// Result: a++f
[NSTextView insertText:@"++" replacementRange:NSMakeRange(1, 4)];

顺便说一句,如果要将文本粘贴到NSTextView,请更改为使用此选项:

pasteAsPlainText:
苹果的文件是这样表述的

讨论
此方法的行为类似于insertText:

谢谢。这似乎是一个合适的替代方法,尽管它需要更多的代码来确定选择范围或插入点。我确实认为这一个
-(NSRange)selectedRange
作为一个相关的附带问题是合适的,我将如何处理
NSTextField
?此类不符合
nstexputClient
。据我所知,不符合
nstextpot
either,并且需要使用文本字段的字段编辑器,即
NSTextView
pasteAsPlainText: