2015-01-06 3 views
0

я создаю несколько объектов NSTextView в приложение для OSX, используя такой код:NSTextView - Невозможно редактировать текст

NSTextView *testTextView = [[NSTextView alloc] initWithFrame:NSMakeRect(0, 700, 1200, 100)]; 
[testTextView setFont:[NSFont fontWithName:@"HelveticaNeue-Light" size:18]]; 
[testTextView setDelegate:self]; 
[testTextView setBackgroundColor:[NSColor lightGrayColor]]; 
[testTextView setString:@"Some text to populate this lovely NSTextView. I would like to be able to edit this text but I can't."]; 
[testTextView setEditable:TRUE]; 
[[self.window contentView] addSubview:testTextView]; 
[self.window makeFirstResponder:testTextView]; 

NSTextView отображается на экране правильно и текст виден, но я не могу отредактируйте текст.

Может ли кто-нибудь указать мне, что я делаю неправильно.

Большое спасибо

Бен

+0

точный тот же код отлично работает для меня .. Есть ли другой вид, который вы добавляете поверх текстового вида? Что вы реализовали в своих методах делегата? –

+0

Кажется, проблема в том, что мое окно без полей. –

ответ

0

если вы используете Tittle бескоммутаторная окно, то объекты невозможно редактировать как NsTextField, NSTextView .......

Если вы используете название меньше окно, , что окно должно быть в состоянии стать ключевым окном, необходимо создать подкласс NSWindow и переопределить -canBecomeKeyWindow следующим образом:

-(BOOL)canBecomeKeyWindow { 

    return YES; 

} 
+0

Это может быть проблема. Я использую [_wowow setStyleMask: NSBorderlessWindowMask]; чтобы сделать мое окно без полей. Хотя я сделал класс CustomNSWindow с вашим предложением, и NSTextView все еще не редактируется. Однако, если я удаляю настройку без полей, они прекрасно редактируют. –

+1

Если вы хотите уменьшить размер окна, вы можете поместить метод canBecomeKeyWindow в класс CustomNSWindow .it может быть healpfull –

+0

Если я добавлю canBecomeKeyWindow и вызову [myWindow статьKeyWindow], я теперь могу видеть мигающий курсор в своих текстовых представлениях, но все еще не могу редактировать. –

Смежные вопросы