NSTextView来自哪里?

在我的OSX应用程序中,我有一个NSSearchField,实现了controlTextDidChange:,它在键NSFieldEditor中包含一个NSTextView实例。

- (void)controlTextDidChange:(NSNotification *)note {

    NSTextView * searchField = note.userInfo[@"NSFieldEditor"];
    ...
}


当问

id firstResponder = [self.window firstResponder];


我得到一个NSTextView

但是它来自哪里呢?由于NSSearchFieldNSTextField都不是从NSTextView派生的...也不是它的单元格...我也找不到它在NSSearchField中的属性

我肯定在使用NSSearchField

macos - NSTextView,使用NSSearchField和NSTextField时它来自哪里-LMLPHP

同样在将动作插座连接到NSSearchField时,发件人是NSSearchField(可以)

- (IBAction)searchFieldCommit:(NSSearchField *)sender {
   //...
}


这是什么一团糟,为什么我会得到NSSearchField vs NSTextView,以及如何从NSSearchField访问NSTextView,反之亦然

最佳答案

可可维护一个共享的NSTextView,称为“字段编辑器”。在此进行更详细的描述:

https://developer.apple.com/library/mac/documentation/TextFonts/Conceptual/CocoaTextArchitecture/TextFieldsAndViews/TextFieldsAndViews.html

10-07 22:33