2012-07-15 52 views
1

這是我的小測試應用程序的佈局:NSTextView不會成爲第一個響應者

  1. AppDelegate擁有WindowController
  2. WindowController擁有CustomTextContainerView
  3. CustomTextContainerView擁有嵌入MyCustomTextViewNSTextView子類)的NSScrollView

標準MainMenu和我的窗口控制器的xib都是空的。我的窗口控制器的-windowDidLoad看起來是這樣的:

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

我試圖做的是設置第一個響應到TextView的,但我已經試過所有我能想到的得到這個工作。

我做到了這樣CustomTextContainerView只是轉發-becomeFirstResponder對其textView。我試着直接在容器和textView上調用它,但我無法自動成爲第一個響應者。

注意:用戶仍然可以點擊文本區域並開始輸入,但是我想要做的是自動設置第一響應者狀態,所以我不必在開始輸入前點擊。我錯過了什麼?

回答

6

要強制第一響應一個窗口,調用此:

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

(這裏假定其他一切必要的第一響應狀態被激活,如認爲不能有覆蓋acceptsFirstResponder返回NO 。)

+0

解決方案(我發現其實獨立:))結束了在調用這個窗口*上*加入我的容器視圖作爲窗口的'contentView'的子視圖,而不是設置它的組合作爲** ** contentView。 – jbrennan 2012-07-15 16:47:44

相關問題