原文地址:给键盘加上UITextField
http://www.aisidechina.com/forum/viewthread.php?tid=914
效果:
.h文件:
#import <UIKit/UIKit.h>
@interface ScoreBar : UIToolbar {
UITextField *nameTextField;
UILabel *scoreLabel;
}
@property (nonatomic, retain) UITextField *nameTextField; //toolbar上的输入框
@property (nonatomic, retain) UILabel *scoreLabel; //toolbar上的按钮
-(void)keyboareWillShow:(NSNotification*)aNotification; //键盘将要出现时调用
@end
.m文件
#import "ScoreBar.h"
@implementation ScoreBar
@synthesize nameTextField;
@synthesize scoreLabel;
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
// Initialization code
self.hidden = YES;
self.tintColor = [UIColor grayColor];
/*
初始化toolbar上的textField和button
*/
......略
/*
设定UIKeyboardWillShowNotification调用的方法
*/
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboareWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
}
return self;
}
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];//调用父类的方法,这个一定要写
// Drawing code
}
- (void)dealloc {
.......
}
-(void)keyboareWillShow:(NSNotification*)aNotification{
/* 取得键盘的frame */
NSDictionary *info = [aNotification userInfo];
NSValue *aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey];
CGRect frame;
[aValue getValue:&frame];
//设定toolbar的frame
self.frame = CGRectMake(frame.origin.x, frame.origin.y-44, frame.size.width, 44);
UIWindow *tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
UIView *keyboard;
/*遍历windwos中所有的view,取得键盘view*/
for(int i = 0;i<tempWindow.subviews.count;i++){
keyboard = [tempWindow.subviews objectAtIndex:i];
if([[NSString stringWithUTF8String:object_getClassName(keyboard)] isEqualToString:@"UIKeyboard"]){
self.hidden = NO;
[keyboard addSubview:self];
[keyboard setBackgroundColor:[UIColor blackColor]];
}
}
}
@end
初始化toolbar:
ScoreBar *scoreBar = [[ScoreBar alloc] initWithFrame:CGRectMake(0, 0, 480, 44)];
scoreBar.nameTextField.delegate = self;
使用becomeFirstResponder调出键盘:
[scoreToolBar.nameTextField becomeFirstResponder];
分享到:
相关推荐
然而,标准的`UITextField`并未提供方便的键盘管理功能,尤其是在移动设备上,键盘弹出可能会遮挡部分界面,影响用户体验。标题提到的"iOS自带回收键盘的UITextField"实际上是一种扩展,通过自定义类别(Category)...
然而,由于屏幕空间有限,尤其是对于iPhone设备,键盘的出现会覆盖一部分屏幕内容,这可能使UITextField变得不可见。为了解决这个问题,开发者可以采取以下几种策略: 1. 使用`UIKeyboardWillShowNotification`和`...
本篇文章将详细探讨如何实现`UITextField`的键盘管理,包括隐藏键盘以及在键盘出现时调整TextField的位置,以防止键盘遮挡用户视线。 首先,我们需要理解`UITextField`的键盘事件。当用户点击`UITextField`时,系统...
`UITextField`提供了`becomeFirstResponder`和`resignFirstResponder`方法,分别用于使`UITextField`获取和失去焦点,从而显示和隐藏键盘。`textFieldShouldReturn`代理方法会在用户点击键盘上的“return”键时触发...
### UITextField与手势识别器 在iOS开发中,UITextField是一个常用且重要的组件,它允许用户输入文本数据。然而,在某些特定的应用场景下,我们可能不希望UITextField在用户进行长按、双击等操作时弹出复制粘贴框。...
5. `keyboardType`:指定键盘类型,如数字键盘、全键盘等。 6. `autocapitalizationType`:自动大写类型,如单词首字母大写、所有字符大写等。 7. `autocorrectionType`:自动纠错类型,可以开启或关闭自动纠错功能...
2. 文本输入委托:为了让自定义键盘能够与文本输入控件(如UITextField或UITextView)协同工作,我们需要设置一个`UITextFieldDelegate`或`UITextViewDelegate`。通过实现`textField(_:shouldChangeCharactersIn:...
3. 自定义键盘:若需提供自定义的键盘,可以使用`UIInputViewController`来创建并关联到`UITextField`。 在实际开发过程中,`Field`文件夹内的资源可能包含了自定义`UITextField`样式的代码、图片或故事板文件。...
为解决这些问题,我们需要精细化处理各种边界情况,例如检测设备类型(iPhone/iPad)、系统版本以及键盘的准确尺寸。 7. **保存和恢复状态**:当键盘消失时,应将ScrollView的状态恢复到键盘出现前,确保界面布局的...
在本项目中,我们将自定义键盘视图赋值给inputView属性,从而替换默认的系统键盘。这样,当用户点击输入框时,就会显示我们定制的键盘。此外,还可以设置输入辅助视图(inputAccessoryView),例如添加一个“完成”...
通常,我们还会配置`keyboardType`来决定显示哪种类型的键盘,以及`returnKeyType`来定义用户按下回车键时的行为。 在传统的编程模式中,`UITextField`的事件处理主要依赖于遵循`UITextFieldDelegate`协议。这个...
为了提高用户体验,还可以在达到最大长度时给出友好的提示,而不是简单地阻止输入。以上就是关于“UITextField现在输入字符长度”问题的详细解释,以及如何避免描述中提到的bug。通过正确的字符长度控制,可以确保`...
当用户在UITextField或UITextView中输入时,键盘弹出可能会覆盖底部的输入区域。为了解决这个问题,我们可以使用`UIKeyboardWillShowNotification`和`UIKeyboardWillHideNotification`通知来监听键盘的显示与隐藏,...
首先,我们需要在需要显示数字键盘的输入框(UITextField或UITextView)上设置自定义视图,并在其上添加“完成”按钮。这个按钮可以是一个UIBarButtonItem或者自定义的UIButton。然后,我们需要实现键盘的相关代理...
然而,在某些场景下,开发者可能希望`UITextView`具备`UITextField`的一些特性,比如,限制输入字符数、设置 placeholder 或者实现简单的键盘返回事件处理。本篇文章将详细探讨如何通过自定义`UITextView`来实现`...
最近转入ios开发,发现ios的UITextField如果在屏幕的最底部的时候,键盘不能自动的调整界面的布局,需要手动的调整位置才可以,所以自己研究和拿着笔话,想写一个通用的方法来实现每一个界面自动适配键盘的位置,...
本教程将深入探讨如何在iPhone应用中实现这一功能,结合代码示例和文档,帮助开发者更好地理解和实践。 首先,我们来看一下基本的Swift代码实现。在iOS中,UIResponder类有一个名为`resignFirstResponder`的方法,...
这些调整是基于设备类型(如 iPhone 是否为高清屏)进行的,确保在不同设备上的显示效果一致。 ##### 密码框处理 当创建密码输入框时,会调用 `-[UITextField setSecureTextEntry:]` 方法来启用安全文本输入模式,...
在iOS开发中,`UITextField` 是一个至关重要的UI组件,用于接收用户输入文本。本教程将深入探讨`UITextField`在Objective-C中的应用,通过实际的Demo实例帮助开发者更好地理解和掌握其使用方法。在这个名为...
在iOS开发中,`UITextField` 是一个非常重要的控件,用于接收用户输入文本。这个话题集中在`UITextField`的字体变化上,特别是在控件成为第一响应者(focus)时以及失去焦点(resigning first responder)时的行为。...