`
lovebirdegg
  • 浏览: 175457 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

给iphone的键盘加上UITextField

阅读更多
原文地址:给键盘加上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];
1
1
分享到:
评论

相关推荐

    iOS自带回收键盘的UITextField

    然而,标准的`UITextField`并未提供方便的键盘管理功能,尤其是在移动设备上,键盘弹出可能会遮挡部分界面,影响用户体验。标题提到的"iOS自带回收键盘的UITextField"实际上是一种扩展,通过自定义类别(Category)...

    ios7隐藏虚拟键盘,解决键盘挡住UITextField问题

    然而,由于屏幕空间有限,尤其是对于iPhone设备,键盘的出现会覆盖一部分屏幕内容,这可能使UITextField变得不可见。为了解决这个问题,开发者可以采取以下几种策略: 1. 使用`UIKeyboardWillShowNotification`和`...

    UITextField

    本篇文章将详细探讨如何实现`UITextField`的键盘管理,包括隐藏键盘以及在键盘出现时调整TextField的位置,以防止键盘遮挡用户视线。 首先,我们需要理解`UITextField`的键盘事件。当用户点击`UITextField`时,系统...

    iphone 开发基础控件UITextField

    `UITextField`提供了`becomeFirstResponder`和`resignFirstResponder`方法,分别用于使`UITextField`获取和失去焦点,从而显示和隐藏键盘。`textFieldShouldReturn`代理方法会在用户点击键盘上的“return”键时触发...

    Iphone干掉UITextField的长按、双击等行为时的复制粘贴框

    ### UITextField与手势识别器 在iOS开发中,UITextField是一个常用且重要的组件,它允许用户输入文本数据。然而,在某些特定的应用场景下,我们可能不希望UITextField在用户进行长按、双击等操作时弹出复制粘贴框。...

    UITextField 文本字段控件-IOS开发

    5. `keyboardType`:指定键盘类型,如数字键盘、全键盘等。 6. `autocapitalizationType`:自动大写类型,如单词首字母大写、所有字符大写等。 7. `autocorrectionType`:自动纠错类型,可以开启或关闭自动纠错功能...

    iphone自定义数字键盘

    2. 文本输入委托:为了让自定义键盘能够与文本输入控件(如UITextField或UITextView)协同工作,我们需要设置一个`UITextFieldDelegate`或`UITextViewDelegate`。通过实现`textField(_:shouldChangeCharactersIn:...

    UITextfield

    3. 自定义键盘:若需提供自定义的键盘,可以使用`UIInputViewController`来创建并关联到`UITextField`。 在实际开发过程中,`Field`文件夹内的资源可能包含了自定义`UITextField`样式的代码、图片或故事板文件。...

    ios-键盘不覆盖UITextField和UITextView输入框.zip

    为解决这些问题,我们需要精细化处理各种边界情况,例如检测设备类型(iPhone/iPad)、系统版本以及键盘的准确尺寸。 7. **保存和恢复状态**:当键盘消失时,应将ScrollView的状态恢复到键盘出现前,确保界面布局的...

    swift-KeyBoard-Swift使用Swift编写的字母和数字键键盘可以用于UITextField和UITextView

    在本项目中,我们将自定义键盘视图赋值给inputView属性,从而替换默认的系统键盘。这样,当用户点击输入框时,就会显示我们定制的键盘。此外,还可以设置输入辅助视图(inputAccessoryView),例如添加一个“完成”...

    UITextField+BlockDemo

    通常,我们还会配置`keyboardType`来决定显示哪种类型的键盘,以及`returnKeyType`来定义用户按下回车键时的行为。 在传统的编程模式中,`UITextField`的事件处理主要依赖于遵循`UITextFieldDelegate`协议。这个...

    UITextField现在输入字符长度

    为了提高用户体验,还可以在达到最大长度时给出友好的提示,而不是简单地阻止输入。以上就是关于“UITextField现在输入字符长度”问题的详细解释,以及如何避免描述中提到的bug。通过正确的字符长度控制,可以确保`...

    iphone 解决键盘遮挡和view传值的一个小例子

    当用户在UITextField或UITextView中输入时,键盘弹出可能会覆盖底部的输入区域。为了解决这个问题,我们可以使用`UIKeyboardWillShowNotification`和`UIKeyboardWillHideNotification`通知来监听键盘的显示与隐藏,...

    iOS设备检测及iPhone数字键盘添加完成按钮工程代码

    首先,我们需要在需要显示数字键盘的输入框(UITextField或UITextView)上设置自定义视图,并在其上添加“完成”按钮。这个按钮可以是一个UIBarButtonItem或者自定义的UIButton。然后,我们需要实现键盘的相关代理...

    UITextView 实现UITextField功能

    然而,在某些场景下,开发者可能希望`UITextView`具备`UITextField`的一些特性,比如,限制输入字符数、设置 placeholder 或者实现简单的键盘返回事件处理。本篇文章将详细探讨如何通过自定义`UITextView`来实现`...

    iOS开发中防止键盘挡住UITextField解决方案

    最近转入ios开发,发现ios的UITextField如果在屏幕的最底部的时候,键盘不能自动的调整界面的布局,需要手动的调整位置才可以,所以自己研究和拿着笔话,想写一个通用的方法来实现每一个界面自动适配键盘的位置,...

    iPhone隐藏键盘 教程

    本教程将深入探讨如何在iPhone应用中实现这一功能,结合代码示例和文档,帮助开发者更好地理解和实践。 首先,我们来看一下基本的Swift代码实现。在iOS中,UIResponder类有一个名为`resignFirstResponder`的方法,...

    UITextField扩展

    这些调整是基于设备类型(如 iPhone 是否为高清屏)进行的,确保在不同设备上的显示效果一致。 ##### 密码框处理 当创建密码输入框时,会调用 `-[UITextField setSecureTextEntry:]` 方法来启用安全文本输入模式,...

    UITextField Demo实例

    在iOS开发中,`UITextField` 是一个至关重要的UI组件,用于接收用户输入文本。本教程将深入探讨`UITextField`在Objective-C中的应用,通过实际的Demo实例帮助开发者更好地理解和掌握其使用方法。在这个名为...

    UITextField的字体变化

    在iOS开发中,`UITextField` 是一个非常重要的控件,用于接收用户输入文本。这个话题集中在`UITextField`的字体变化上,特别是在控件成为第一响应者(focus)时以及失去焦点(resigning first responder)时的行为。...

Global site tag (gtag.js) - Google Analytics