2011-07-14 149 views
4

我正在創建一個從NSPanel繼承的自定義類,該面板是應用程序的着陸屏幕。如何使NSTextField可編輯

我正在添加一個NSTextField,它在屏幕上可見。問題在於文本框不可編輯。

但是,如果我創建一個新的可可項目,併爲textfield運行相同的addSubview代碼,一切都很好,我可以編輯文本字段。

在我看來,像我的自定義面板問題,但我不能追捕它。

這裏是我的代碼:

NSTextField *infoTextField = [[NSTextField alloc] initWithFrame:rect]; 
[[window contentView] addSubview:infoTextField]; 
[infoTextField setDelegate:self]; 
[[infoTextField window] becomeFirstResponder]; 
[infoTextField setTextColor:[NSColor blackColor]]; 
[infoTextField setDrawsBackground:YES]; 
[infoTextField setBordered:YES]; 
[infoTextField setSelectable:YES]; 
[infoTextField setEditable:YES]; 
[infoTextField setEnabled:YES]; 
[infoTextField setAlignment:NSLeftTextAlignment]; 
[infoTextField setStringValue:@"What are you doing?"]; 
[infoTextField release]; 

我需要你的幫助......

回答

3

覆蓋在NSPanel子類中的方法,

- (BOOL)canBecomeKeyWindow { 
    return YES; 
} 
+0

這是正確的,就這麼簡單。 – uchuugaka