NSTextView,它来自使用NSSearchField和NSTextField时的位置

时间:2015-08-11 19:45:39

标签: macos cocoa nstextfield nstextview nssearchfield

NSTextView来自哪里?

在我的OSX应用程序中,我有一个NSSearchField,我实现了controlTextDidChange:,其中包含密钥NSFieldEditorNSTextView实例

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

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

也在询问时

id firstResponder = [self.window firstResponder];

我得到NSTextView

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

我正在使用NSSearchField

enter image description here

将操作插座连接到NSSearchField时,发件人为NSSearchField(可以)

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

这是什么混乱,为什么我得到NSSearchField vs NSTextView以及如何从NSSearchField访问NSTextView,反之亦然 < / p>

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

Aderstedt对于现场编辑是正确的。您需要知道的另一件事是,在controlTextDidChange:方法中,note.object将成为发送通知的控件。