Я хотел бы ввести текст в NSTextView
, чтобы, когда я нажимаю клавишу возврата, NSTextView
очищался, а курсор возвращался в исходное положение.Затем введенный текст отображается на экране, используя drawRect
из NSView
.
. Это то, что у меня есть в настоящее время, и оно не работает.В основном self.outputString
всегда является текущим значением [textview string]
, хотя я рисую, а затем очищаю.Текущий код ниже не рисует никакой строки на экране.Если я удаляю [textview setString:@""]
, то текущий текст всегда показывает, что я пишу.
- (void)drawRect:(NSRect)dirtyRect
{
[[NSColor whiteColor] setFill];
NSRectFill(dirtyRect);
// Drawing code here.
NSPoint point = NSMakePoint(50.0f, 700.0f);
NSMutableDictionary *font_attributes = [[NSMutableDictionary alloc] init];
NSFont *font = [NSFont fontWithName:@"Futura-MediumItalic" size:35.0f];
[font_attributes setObject:font forKey:NSFontAttributeName];
[self.outputString drawAtPoint:point withAttributes:font_attributes];
[font_attributes release];
}
- (BOOL)textView:(NSTextView *)textView doCommandBySelector:(SEL)commandSelector {
[self enterPressed:[textView string]];
[textView setString:@""];
NSRange range = { 0, 0 };
[self.textView setSelectedRange: range];
return YES;
}
- (void) enterPressed:(NSString*)stringEntered
{
NSLog(@"enter pressed with string: %@", stringEntered);
self.outputString = stringEntered;
[self setNeedsDisplay:YES];
}