NSTextView不会成为第一响应者

时间:2012-07-15 01:20:50

标签: cocoa nstextview first-responder

这是我的小测试应用程序的布局:

  1. AppDelegate拥有WindowController
  2. WindowController拥有CustomTextContainerView
  3. CustomTextContainerView拥有NSScrollView嵌入MyCustomTextViewNSTextView子类)。
  4. 标准MainMenu和我的窗口控制器的xib相对空。我的窗口控制器的-windowDidLoad看起来像这样:

    - (void)windowDidLoad {
        [super windowDidLoad];
        // create CustomTextContainerView
        [[self window] setContentView:self.customTextContainerView];
    }
    

    我正在尝试做的是设置第一响应者到textView,但我已经尝试了一切我能想到的工作。

    我已经CustomTextContainerView-becomeFirstResponder转发到其textView上。我已经尝试直接在容器和textView上调用它,但我不能让它自动成为第一响应者。

    注意:用户仍然可以在文本区域中单击并开始输入,但我要做的是自动设置第一响应者状态,所以在开始之前我不必单击打字。我错过了什么?

1 个答案:

答案 0 :(得分:7)

要强制窗口的第一个响应者,请调用:

[[self window] makeFirstResponder:self.customTextContainerView];

(这假定启用了第一响应者状态所需的所有其他内容,例如视图无法覆盖acceptsFirstResponder以返回NO。)