0

NSTextView 来自哪里?

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

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

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

问的时候也是

id firstResponder = [self.window firstResponder];

我得到一个NSTextView

但它是从哪里来的???asNSSearchField也不NSTextField是从NSTextView派生的......也不是它的细胞......我也无法在NSSearchField中找到它的属性

我肯定在使用 NSSearchField

在此处输入图像描述

将动作插座连接到 时NSSearchField,发件人也是NSSearchField(没关系)

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

这是什么乱七八糟,为什么我会得到NSSearchFieldvsNSTextView以及如何访问NSSearchFieldfrom NSTextView,反之亦然

4

2 回答 2

1

Aderstedt 对字段编辑器的看法是正确的。您需要知道的另一件事是,在您的controlTextDidChange:方法中,note.object将是发送通知的控件。

于 2015-08-11T22:58:23.667 回答
1

Cocoa 维护一个共享的 NSTextView,称为“字段编辑器”。这里有更详细的描述:

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

于 2015-08-11T20:02:24.290 回答