iOS键盘点击enter键发生的那些事儿

#import "ViewController.h"

@interface ViewController () <UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UITextField *usernameTextfield;
@property (weak, nonatomic) IBOutlet UITextField *passwordTextfield;
@property (weak, nonatomic) IBOutlet UIButton *loginBtn;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    //设置usernameTextfield及passwordTextfield的相关属性
    
    //设置 usernameTextfield 的键盘类型
    /*
     typedef NS_ENUM(NSInteger, UIKeyboardType) {
     UIKeyboardTypeDefault,                // Default type for the current input method.
     UIKeyboardTypeASCIICapable,           // Displays a keyboard which can enter ASCII characters, non-ASCII keyboards remain active
     UIKeyboardTypeNumbersAndPunctuation,  // Numbers and assorted punctuation.
     UIKeyboardTypeURL,                    // A type optimized for URL entry (shows . / .com prominently).
     UIKeyboardTypeNumberPad,              // A number pad (0-9). Suitable for PIN entry.
     UIKeyboardTypePhonePad,               // A phone pad (1-9, *, 0, #, with letters under the numbers).
     UIKeyboardTypeNamePhonePad,           // A type optimized for entering a person‘s name or phone number.
     UIKeyboardTypeEmailAddress,           // A type optimized for multiple email address entry (shows space @ . prominently).
     UIKeyboardTypeDecimalPad NS_ENUM_AVAILABLE_IOS(4_1),   // A number pad with a decimal point.
     UIKeyboardTypeTwitter NS_ENUM_AVAILABLE_IOS(5_0),      // A type optimized for twitter text entry (easy access to @ #)
     UIKeyboardTypeWebSearch NS_ENUM_AVAILABLE_IOS(7_0),    // A default keyboard type with URL-oriented addition (shows space . prominently).
     
     UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, // Deprecated
     
     };
     */
    
    //self.usernameTextfield.keyboardType = UIKeyboardTypeNumberPad;
    
    //设置usernameTextfield的 returnkey
    self.usernameTextfield.returnKeyType = UIReturnKeyNext;
    
    //设置代理前必须让本类支持该协议,并将代理设置为自己
    self.usernameTextfield.delegate = self;
    
    
    //设置 usernameTextfield
    self.passwordTextfield.keyboardType = UIKeyboardTypeEmailAddress;
    self.passwordTextfield.returnKeyType = UIReturnKeyDone;
    self.passwordTextfield.delegate =self;
    
    //使你输入的密码变为小原点,及一般应用都这么做
    self.passwordTextfield.secureTextEntry = YES;
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
- (IBAction)clickLoginBtn:(UIButton *)sender {
    NSLog(@"登录成功");
}

#pragma mark - UITextFieldDelegate

- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    if (textField == self.usernameTextfield) {
        //self.usernameTextfield放弃第一响应者,而self.passwordTextfield变为第一响应者
        [self.usernameTextfield resignFirstResponder];
        [self.passwordTextfield becomeFirstResponder];
    } else if(textField == self.passwordTextfield) {
        //self.passwordTextfield放弃第一响应者,并调用登录函数
        [self.passwordTextfield resignFirstResponder];
        [self.loginBtn sendActionsForControlEvents:UIControlEventTouchUpInside];
        //[self clickLoginBtn:self.loginBtn];
    }
    return YES;
}
@end
时间: 2024-10-05 10:12:02

iOS键盘点击enter键发生的那些事儿的相关文章

C# DataGridView点击Enter键切换单元格

#region 将ENTER键转换为TAB protected override void OnKeyUp(System.Windows.Forms.KeyEventArgs e) { base.OnKeyUp(e); if (e.KeyCode == System.Windows.Forms.Keys.Enter) { e.Handled = true; System.Windows.Forms.SendKeys.Send("{TAB}"); } } protected overri

Android开发中EditText的点击Enter键焦点改变处理(获取焦点和失去焦点交互变化)

最近因为项目需要,需要将EditText的焦点转移到LineraLayout上: 即为EditText输入完毕后,点击回车键或者按压其他嵌入式android设备的OK键,获取LineraLayout的点击事件. 在onCreate方法中调用此方法initListener即可; 1 /** 2 * 监听EditText的焦点,点击回车键(或者按压OK键)后,失去焦点,将焦点转到ImageView上 3 */ 4 private void initListener() { 5 mEtTrainId.

按Enter键后Form表单自动提交的问题

怪事年年有,今年特别多. 话说,最近项目中遇到一件怪事,当我鼠标focus在文本框中,轻轻敲了下回车键,尼玛页面突然刷新了,当时把宝宝给吓得. 接下来就是一番苦逼的烧脑和蛋疼~ 一.被表象所迷惑 突然出现这种情况,脑海中第一反应是,keydown事件是不是出问题了,然后找啊找啊找啊,然后没有然后. 在把input元素上的所有事件移除掉后,我自信的按了一下enter键.艾玛,又刷新了.心里那个苦哎. 二.列出所有可能 一阵捣鼓之后,脑海中列出了所有按下enter键后的改变,url改变,多了一个问号

IOS 开发之-- textfield和textview,return键的改变,点击return键

一,textfield的return键改变 方案1.改变键盘右下角的换行(enter)键为完成键,后实现代理方法键盘自动回弹 UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(100, 300, 200, 40)]; [self.view addSubview:textField]; textField.delegate = self; textField.returnKeyType = UIReturnK

自定义软件盘的Enter键

目标:改变软键盘的外观使enter显示为“DONE”或“完成”,监听点击事件. 实现: 1.在xml文件中定义一个EditText <EditText android:layout_width="match_parent" android:layout_height="40dp" android:imeOptions="actionDone" /> 但是仅仅这样设置软键盘enter键的外观并没有发生改变,依然显示为换行符.设置下面两个

按下enter键后表单自动提交问题

在HTML的form表单里,按下enter键之后,默认情况下表单会自动提交. 在公司一个项目里,按下enter键自动提交表单的查询结果与按下搜索框的搜索结果页面显示不一样,按下搜索按钮之后是通过Ajax请求返回结果:而按下enter键是直接post请求然后跳转返回一个页面,失去了页面样式及导航等. 一开以为是写了js代码导致按下enter键之后会触发表单提交,后来把js代码全部移除也是一样地按下enter键会触发表单提交.到网上搜索发现是因为默认情况下在form表单内按下enter键会触发表单自

android软键盘enter键

enter键,回车键,电脑键盘上enter键就有多种响应.android软键盘也不例外 你在EditText上输入以后,想在下一行输入框输入,可能需要去点击下一行输入框,让它获取焦点,也可能要隐藏软键盘,在点击输入框,弹出软键盘. 或者已经到了最后一行输入框,输入完毕以后,要点击登录,注册,或者链接按钮,可能要去隐藏它,感觉操作狠繁琐.用户体验不好,有没有解决办法呢? 其实可以利用软键盘的enter键来解决上面的体验问题. 软键盘,最常用的enter键事件有: 把EditText的Ime Opt

WinForm中变Enter键为Tab键实现焦点转移的方法

if (e.KeyCode == Keys.Enter) { //this.SelectNextControl(this.ActiveControl,true, true, true, true); SendKeys.Send("{Tab}"); //向活动应用程序发送击键 注意格式:Send("{Tab}");中的{} } /// <summary> /// 窗体控件控制相关的方法 /// </summary> public class C

在ie9下在textbox框里面输入内容按enter键会触发按钮的事件

问题 在ie下,如果存在有button标签,如果在textbox里面输入内容,按下enter键,则会触发第一个按钮的click事件,经过测试,在IE10以及以下的都存在这个问题 原因 浏览器默认行为不一致导致 IE浏览器IE8及以后的版本,会根据页面使用的文档模式(Defining document compatibility)来定义按钮的兼容性问题.IE8标准模式的默认行为是submit,其他模式的默认行为是button. submit 该按钮是提交按钮(除了 Internet Explore