第19~20章 Keyboard Events & Drawing Text with Attributes

  • Post author:
  • Post category:其他


第19~20章 Keyboard Events & Drawing Text with Attributes


这两章完成了一个功能,响应用户的键盘输入,并把用户输入的字母显示到view中。


第19章主要介绍view如何响应用户的键盘输入。第20章介绍如何将,从键盘得到的字母以特殊的格式显示到view上。


1.一个应用程序可能有多个view。那么,到底哪个view来响应键盘的输入呢?


只有keyView的firstResponder才会响应。但是keyView和first Responsder是可以在view之间切换的。切换的过程如下图所示。


可以通过在nib中设置nextKeyView来完成keyView的切换。




2.对键盘事件的响应通过keyDown等函数来处理,例如:





- (void)keyDown: (NSEvent *)event


{



[self interpretKeyEvents:[NSArray arrayWithObject:event]];


}


Then you need to override the methods that interpretKeyEvents: will call:


- (void)insertText: (NSString *)input


{



// Set string to be what the user typed


[self setString:input];


}





3. 设置格式属性





- (void)prepareAttributes


{



attributes = [[NSMutableDictionary alloc] init];


[attributes setObject:[NSFont fontWithName:@"Helvetica" size:75]


forKey:NSFontAttributeName];


[attributes setObject:[NSColor redColor] forKey:NSForegroundColorAttributeName];


}


4. 将string在view上的以某种格式显示出来


例如,在rect居中显示





- (void)drawStringCenteredIn: (NSRect)r


{



NSSize strSize = [string sizeWithAttributes:attributes];


NSPoint strOrigin;


strOrigin.x = r.origin.x + (r.size.width - strSize.width)/2;


strOrigin.y = r.origin.y + (r.size.height - strSize.height)/2;


[string drawAtPoint:strOrigin withAttributes:attributes];


}





challenge1:在attribute中加入阴影属性。


challenge2: 使用NSFontManager将NSFont转换成“BOLD”格式后,加入attribute中。


另外还介绍了如何产生PDF数据,没有细看。

文件名:TypingTutor.zip


文件大小:2.26 MB


下载地址:

http://1000eb.com/8v1x



版权声明:本文为hope_worker原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。