iphone应用程序开发指南--触摸事件
来源:互联网 发布:手机淘宝抢购刷新技巧 编辑:程序博客网 时间:2024/06/05 03:52
您可以通过调用视图对象的becomeFirstResponder 方法来为可编辑的文本视图显
示键盘。调用这个方法可以使目标视图成为第一响应者,并开始编辑过程,其效果和用户触击该视图是一样的。
需要做的调整通常包括暂时调整一或多个视图的尺寸和位置,从而使文本对象可见。管理带
有键盘的文本对象的最简单方法是将它们嵌入到一个UIScrollView ( 或其子类,如UITableView)对象。当键盘被显示出来时,您需要做的只是调整滚动视图的尺寸,并将目标文本对象滚动到合适的位置。为此,在UIKeyboardDidShowNotification 通告的处理代码中需要进行如下操作:
取得键盘的尺寸。
将滚动视图的高度减去键盘的高度。
将目标文本框滚动到视图中。
在配置滚动视图时,请务必为所有的内容视图配置恰当的自动尺寸调整规则。在之
前的图中,文本框实际上是一个UIView 对象的子视图,该UIView 对象又是UIScrollView对象的子视图。如果该UIView 对象的UIViewAutoresizingFlexibleWidth和UIViewAutoresizingFlexibleHeight 选项被设置了,则改变滚动视图的边框尺寸会同时改变它的边框,因而可能导致不可预料的结果。禁用这些选项可以确保该视图保持尺寸不变,并正确滚动。
处理键盘通告
// Call this method somewhere in your view controller setup code.
- (void)registerForKeyboardNotifications
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasHidden:)
name:UIKeyboardDidHideNotification object:nil];
}
// Called when the UIKeyboardDidShowNotification is sent.
- (void)keyboardWasShown:(NSNotification*)aNotification
{
if (keyboardShown)
return;
NSDictionary* info = [aNotification userInfo];
// Get the size of the keyboard.
NSValue* aValue = [info
objectForKey:UIKeyboardBoundsUserInfoKey];
CGSize keyboardSize = [aValue CGRectValue].size;
// Resize the scroll view (which is the root view of the window)
CGRect viewFrame = [scrollView frame];
viewFrame.size.height -= keyboardSize.height;
scrollView.frame = viewFrame;
// Scroll the active text field into view.
CGRect textFieldRect = [activeField frame];
[scrollView scrollRectToVisible:textFieldRect animated:YES];
keyboardShown = YES;
}
// Called when the UIKeyboardDidHideNotification is sent
- (void)keyboardWasHidden:(NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
// Get the size of the keyboard.
NSValue* aValue = [info
objectForKey:UIKeyboardBoundsUserInfoKey];
CGSize keyboardSize = [aValue CGRectValue].size;
// Reset the height of the scroll view to its original value
CGRect viewFrame = [scrollView frame];
viewFrame.size.height += keyboardSize.height;
scrollView.frame = viewFrame;
keyboardShown = NO;
}
跟踪活动文本框的方法
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
activeField = textField;
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
activeField = nil;
}
- iphone应用程序开发指南--触摸事件
- iphone应用程序开发指南--触摸事件(笔记 3 )
- iphone应用程序开发指南
- iPhone开发指南-应用程序核心
- iPhone开发指南-应用程序核心
- iPhone开发指南-应用程序核心
- iphone开发之触摸事件详解
- iPhone开发指南-事件处理
- iPhone开发指南-事件处理
- iPhone开发指南-事件处理
- iPhone开发指南-事件处理
- iPhone应用程序编程指南---事件处理
- iPhone应用程序编程指南(事件处理)
- iphone应用程序开发指南(笔记1)
- iphone应用程序开发指南(笔记2)
- 移动开发:iphone开发之触摸事件详解
- iPhone开发进阶(8)— 检测屏幕触摸事件
- iPhone开发进阶(8)--- 检测屏幕触摸事件
- 局域网专用网段
- Microsoft .Net Remoting系列专题之三:Remoting事件处理全接触
- c语言实现记事本文件的 DES加密 解密
- ubuntu 多屏设置 “虚拟大小大于可用大小”解决方法
- Cocos2d-x安装与卸载
- iphone应用程序开发指南--触摸事件
- 第六周项目一
- XCODE4.2 模拟器定位
- 常量指针与指针常量的区别(转帖)
- 深层次剖析针对搜索引擎站长如何选择黑白帽子
- Wince 上的USB 驱动详解
- Java各种视频下载链接全集(从java到ssh框架)
- (转)【Android游戏开发二十】物理游戏之重力系统开发,让你的游戏变得有质有量!
- python 伍--保存执行程序,注释