我想在更改和操纵它之前捕获NSTextField中的输入文本。

textField:shouldReplaceCharactersInRange表示UITextField,以及
textView:shouldChangeTextInRange表示NSTextView

更新:
我不介意textDidChange(notification: NSNotification)是否会被触发

最佳答案

当您的NSTextField成为焦点时,它将成为称为“字段编辑器”的NSTextView的委托。结果,您的NSTextField可以符合NSTextViewDelegate协议,这意味着您可以像这样实现textView:shouldChangeTextInRange:replacementString:

@interface MyTextField : NSTextField <NSTextViewDelegate>
@end

@implementation MyTextField

- (BOOL)textView:(NSTextView *)textView
  shouldChangeTextInRange:(NSRange)affectedCharRange
  replacementString:(NSString *)replacementString
{
  // Do your thing.
}

@end

关于macos - NSTextField是否与textField:shouldReplaceCharactersInRange等效?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53968647/

10-13 08:44