NSTextView的insertText方法是在OS X v10.11弃用。什么是更换?

问题描述 投票:4回答:2

我是AppKit API参考看到,insertText方法在OS X v10.11弃用。那我应该作为替补使用?

macos cocoa nstextview appkit
2个回答
7
投票

该文件说,

- (void)insertText:(id)aString

这种方法是通过由用户键入的文本进入NSTextView的装置。见NSInputManager类和NSTextInput协议规范以获取更多信息。 ...

NSTextInput有一张纸条:

重要

NSTextInput协议被提名为弃用。请使用NSTextInputClient协议,在OS X v10.5中引入,如在NSTextInputClient Protocol Reference说明。

NSTextInputClient协议有一个方法

- (void)insertText:(id)aString
  replacementRange:(NSRange)replacementRange

这似乎是适当的替代


-1
投票

老方法

- (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)];
© www.soinside.com 2019 - 2024. All rights reserved.