2011-07-14 153 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