Macos NSTextView';OS X v10.11中不推荐使用s insertText方法。什么是替代品?
我在AppKit API参考中看到,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
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: