• 问题:有一些应用有这样的需求,自定义键盘按键时增加字符放大效果和音效、震动效果,仿系统键盘; 说明:按键的放大效果,比较简单,这里不做说明,读者可以自己去完成;这里主要介绍下增加按键音效和震动效果...

    问题:有一些应用有这样的需求,自定义键盘按键时增加字符放大效果和音效、震动效果,仿系统键盘;


    说明:按键的放大效果,比较简单,这里不做说明,读者可以自己去完成;这里主要介绍下增加按键音效和震动效果;


    ios 播放声音文件的方法很多,有System Sound Service、AVAudioPlayer、Audio Queue Services 等多种方法;由于按键音效属于短而小的声音,对于这些短小且需要频繁播放的音频,最好将其加入到系统声音(system sound)里。

    但是要注意几点:

    需要播放的音频文件不能超过30秒

    必须是IMA/ADPCM格式[in linear PCM or IMA4(IMA/ADPCM) format]

    必须是.caf .aif .wav文件

    不能控制播放的进度,方法调用后直接播放;

    使用系统声音播放的方法:

    1、导入头文件:

    #import <AudioToolbox/AudioServices.h>

    2、初始化音频文件:

    NSString * file_sound = [[NSBundle mainBundlepathForResource:@"ButtonSound" ofType:@"WAV"];

    3、创建系统声音,同时返回一个ID;

    SystemSoundID soundID;

            AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:file_sound], &soundID);

    4、根据ID播放自定义系统声音;

    AudioServicesPlayAlertSound(soundID);

    5、增加震动效果,震动效果,其实是一个预定义的音效文件:kSystemSoundID_Vibrate ;

    AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);

    完..

    展开全文
  • iOS开发中系统自带键盘已经有很多样式,但是有时候并不能满足我们都开发需求,需要或大或小的改动,这时候就需要我们自定义键盘了,系统自带键盘样式如下: public enum UIKeyboardType : Int { case `default` ...

    系统自带的样式

    • 在iOS开发中系统自带键盘已经有很多样式,但是有时候并不能满足我们都开发需求,需要或大或小的改动,这时候就需要我们自定义键盘了,系统自带键盘样式如下:
    public enum UIKeyboardType : Int {
        case `default` // Default type for the current input method.
        case asciiCapable // Displays a keyboard which can enter ASCII characters
        case numbersAndPunctuation // Numbers and assorted punctuation.
        case URL // A type optimized for URL entry (shows . / .com prominently).
        case numberPad // A number pad with locale-appropriate digits (0-9, ۰-۹, ०-९, etc.). Suitable for PIN entry.
        case phonePad // A phone pad (1-9, *, 0, #, with letters under the numbers).
        case namePhonePad // A type optimized for entering a person's name or phone number.
        case emailAddress // A type optimized for multiple email address entry (shows space @ . prominently).
        @available(iOS 4.1, *)
        case decimalPad // A number pad with a decimal point.
        @available(iOS 5.0, *)
        case twitter // A type optimized for twitter text entry (easy access to @ #)
        @available(iOS 7.0, *)
        case webSearch // A default keyboard type with URL-oriented addition (shows space . prominently).
        @available(iOS 10.0, *)
        case asciiCapableNumberPad // A number pad (0-9) that will always be ASCII digits.
    }
    

    默认键盘效果图如下:
    系统自带键盘样式

    • 这里需要说明一下键盘收起的方法:
      如果是单个输入框并且可以拿到该输入框想让键盘收起:textview.resignFirstResponder()
      如果是很多输入输入框,不想一一判断哪个输入框是第一响应者,或者不好拿到输入框变量,键盘收起的方法有:view.endEditing(true)
      如果想出发输入框为编辑状态,可以调用textview.becomeFirstResponder()

    自定义键盘

    • 有时候我们需要在原有的键盘上加一些控件,不需要改变原有键盘的布局,这时候只需要监听键盘的弹出和退出的通知,计算frame,然后在window上添加对应的控件即可。有时候系统自带键盘都没法满足我们都需求就需要完全自定义键盘了。

    在系统自带键盘基础上自定义键盘

    • 有时候我们只需要在现有的键盘上添加几个键,来组成自己想要的键盘如数字键盘没有收起键,可以添加一个收起键盘。
    • UITextFieldUITextView有一个inputAccessoryView的属性,当你想在键盘顶部展示一个自定义的view时,你就可以设置该属性。你设置的view就会自动和键盘keyboard一起显示了和隐藏。
    • 需要注意的是,你所自定义的view既不应该处在其他的视图层里,也不应该成为其他视图的子视图。其实也就是说,你所自定义的view只需要赋给属性inputAccessoryView就可以了,不要再做其他多余的操作。
    • 监听键盘弹出和收起的4个通知,我们可以通过这些通知来获取键盘的frame,动画时间,动画轨迹等信息,可以做一些界面的调整,比如键盘掏出时挡住了输入框,要调整输入框的frame等。
    NSNotificationName_OC/Swift 对应的事件
    UIKeyboardWillShowNotification / UIKeyboardWillShow 键盘将要弹出展示
    UIKeyboardDidShowNotification / UIKeyboardDidShow 键盘已经弹出展示
    UIKeyboardWillHideNotification / UIKeyboardWillHide 键盘将要收起隐藏
    UIKeyboardDidHideNotification / UIKeyboardDidHide 键盘已经收起隐藏
    • 给数字键盘添加一个完成输入收起的按钮:
        override func viewDidLoad() {
            super.viewDidLoad()
    //        let topView = UIToolbar(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: 50))
    //        topView.barStyle = UIBarStyle.default
    //        topView.backgroundColor = UIColor.blue
            let topView = UIView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: 50))
            topView.backgroundColor = UIColor.lightGray
            let doneBtn = UIButton(type: UIButtonType.custom)
            doneBtn.frame = CGRect(x: UIScreen.main.bounds.size.width - 80, y: 10, width: 60, height: 30)
            doneBtn.setTitle("完成", for: UIControlState.normal)
            doneBtn.layer.cornerRadius = 5
            doneBtn.setTitleColor(UIColor.white, for: UIControlState.normal)
            doneBtn.backgroundColor = UIColor.blue
            doneBtn.addTarget(self, action: #selector(endEidt), for: UIControlEvents.touchUpInside)
            topView.addSubview(doneBtn);
            textField.inputAccessoryView = topView;
        }
        
       @objc func endEidt(){
            view.endEditing(true)
        }
    

    添加完成按钮收起键盘
    注意:如果是用UIToolbar通过addSubview方式添加完成按钮,在iOS11中按钮的点击事件是无法响应的,因为图层问题。

    完全自定义键盘

    • 上面是在原有的键盘基础上添加一些自定义的视图,但是位置必须在原有键盘顶部,有一定的局限性。有时候我们需要改变键盘中键的位置标题等,如银行类app会有自定义安全键盘,身份证输入键盘等。(虽然身份证输入键盘可以在原有的基础上通过监听键盘的通知来添加和移出X按钮,但是会比较麻烦,完全自定义键盘反而更简单)。
    • UITextFieldUITextView有一个inputView的属性,inputView就是显示键盘的view,如果重写这个view则不再弹出键盘,而是弹出自己的view。所以我们完全可以自定义任何我们想要展现的键盘。(通过该属性我们还可以做相应的从底部弹出来的弹框,只需要设置 UITextFieldUITextView``inputView的属性为弹框视图,UITextFieldUITextView成为第一响应者则弹出,注销第一响应者则收起)。
    • 自定义一个数字安全键盘具体步骤如下:
      1. 自定键盘视图布局字控件
      2. 讲0~9数字随机排序并设置到键盘上展示
      3. 事件处理,0~9按键用于传值,每点击一下就拼接到UITextField/UITextView原有的text后面;删除建每点击一下就删除UITextField/UITextView的text最后一个字符;完成按钮用于收起键盘,并在收起键盘后重新对键盘文字随机排序,设置到数字按键上,这样下次弹出键盘时就是又一套排序的数字安全键盘
    • 具体如下:

    自定义键盘:

    import UIKit
    //点击事件代理
    @objc protocol CustomKeyboardDelegate: NSObjectProtocol {
     @objc optional func keyboardItemDidClicked(_ item: String?)
     @objc optional func deleteBtnClick()
     @objc optional func doneBtnClick()
    }
    
    class CustomKeyboardView: UIView {
        weak var delegate: CustomKeyboardDelegate?
        override init(frame: CGRect) {
            super.init(frame: frame)
            let shuffledIntegers = numberArr()
            backgroundColor = UIColor.lightGray
            //布局子空件
            for index in 0..<12 {
                let btn = UIButton(type: .custom)
                btn.backgroundColor = UIColor.white
                btn.addTarget(self, action: #selector(self.buttonDidClicked(_:)), for: .touchUpInside)
                btn.frame = CGRect(x: self.frame.width / 3 * (CGFloat)(index % 3), y: (CGFloat)(45 * (index / 3)), width: self.frame.width / 3 - 1, height:44.0)
                addSubview(btn)
                btn.layer.borderWidth = 3
                btn.layer.borderColor = UIColor.lightGray.cgColor
                btn.layer.cornerRadius = 5
                btn.tag = 100+index
                btn.setTitleColor(UIColor.black, for: .normal)
                if index == 10{
                    btn.setTitle("删除", for: .normal)
                    btn.setTitleColor(UIColor.red, for: .normal)
                }else if index == 11{
                    btn.setTitle("完成", for: .normal)
                    btn.setTitleColor(UIColor.blue, for: .normal)
                }else{
                    let indexString = "\(shuffledIntegers![index])"
                    btn.setTitle(indexString, for: .normal)
                }
            }
        }
        
        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }
        
    }
    
    extension CustomKeyboardView{
        //随机排序0~9
        func numberArr() -> [Any]? {
            let startArray = NSMutableArray(array: [0,1,2,3,4,5,6,7,8,9])
            let resultArray = NSMutableArray()
            for i in 0..<startArray.count {
                let t = arc4random() % UInt32(startArray.count)
                resultArray[i] = startArray[Int(t)]
                startArray[Int(t)] = startArray.lastObject as Any
                startArray.removeLastObject()
            }
            return (resultArray as! [Any])
        }
        
        
        //点击事件
        @objc func buttonDidClicked(_ sender: UIButton?) {
            let index = sender!.tag - 100
            if index < 10 {//传值
                if (delegate != nil && (delegate?.responds(to: #selector(CustomKeyboardDelegate.keyboardItemDidClicked(_:))))!) {
                    delegate?.keyboardItemDidClicked!(sender?.titleLabel?.text)
                }
            }else if (index == 10){//删除
                if (delegate != nil && (delegate?.responds(to: #selector(CustomKeyboardDelegate.deleteBtnClick)))!) {
                    delegate?.deleteBtnClick!()
                }
            }else{//收起键盘刷新键盘数字
                if (delegate != nil && (delegate?.responds(to: #selector(CustomKeyboardDelegate.doneBtnClick)))!) {
                    delegate?.doneBtnClick!()
                    reloadKeyBoard()
                }
            }
        }
        //重新设置按钮标题
        func reloadKeyBoard(){
            let arr = (numberArr()as! Array<NSNumber>)
            for index in 0..<arr.count {
                let btn = (self.viewWithTag(Int(index)+100)) as!UIButton
                let indexString = "\(arr[index])"
                btn.setTitle(indexString, for: UIControlState.normal)
            }
        }
    }
    

    自定义键盘使用:

    class CustomTwoViewController: UIViewController{
        @IBOutlet weak var textField: UITextField!
        
        override func viewDidLoad() {
            super.viewDidLoad()
           let custimKB = CustomKeyboardView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: 180+34))
            custimKB.delegate = self as CustomKeyboardDelegate;
            textField.inputView = custimKB;
            textField.delegate = self as UITextFieldDelegate
        }
    }
    //自定义键盘代理方法
    extension CustomTwoViewController:CustomKeyboardDelegate,UITextFieldDelegate{
        //拼接字符代理
        func keyboardItemDidClicked(_ item: String?) {
            textField.text = textField.text! + (item ?? "")
        }
        //删除字符代理
        func deleteBtnClick(){
            if textField.text != nil && (textField.text?.count)!>0 {
                var str = textField.text!
                //删除最后一个元素
                str.removeLast()
                textField.text = str
            }
        }
        //完成安妞
        func doneBtnClick(){
            view.endEditing(true)
        }
    }
    

    效果图如下:
    自定义安全键盘

    • 注意:
      这里支队iPhone X适配,对于其他机型还需要最额外的适配工作。
      inputView不会随着键盘出现而出现,设置了InputView只会当UITextField或者UITextView变为第一相应者时显示出来, 不会显示键盘了。设置了InputAccessoryView,它会随着键盘一起出现并且会显示在键盘的顶端。InutAccessoryView默认为 nil.

    自定义全部类型键盘

    • 这里用完全自定义的方法写了个字母、数字、符号之间可以切换输入的键盘,并且进行了iPhoneX、XR、XS、XS Max等适配,效果如下:
      iPhone8 plus效果
      iPhone X 适配效果
      相关源码:自定义全部类型键盘

    自定义键盘demo
    参考文档:
    iOS自定义安全键盘

    展开全文
  • ipad(ios11)连上蓝牙键盘后如何更好地使用键盘。(用的是罗技ik1041蓝牙键盘,本身支持ios) 首先是本身就有的上面一排快捷键 其中切换语言因为版本原因要用 Ctrl+空格 选择文本操作要用 单字: Shift+...

    ipad(ios11)连上蓝牙键盘后如何更好地使用键盘。(用的是罗技ik1041蓝牙键盘,本身支持ios)

    首先是本身就有的上面一排快捷键

    其中切换语言因为版本原因要用 Ctrl+空格

    选择文本操作要用 单字:  Shift+左右箭头    多字 Fn+左右箭头

    cmd+tab 可以快速切换打开程序

    cmd有很多功能,长按cmd后会出现具体跟什么按键配合有什么功能,而且在不同的app里会有不同的功能。

    safari中有箭头可以下拉,alt 加箭头可以下拉一页,cmd加箭头可以拉到底。

    别人做的cmd按键总结

    https://bbs.feng.com/read-htm-tid-10067997.html

    https://bbs.feng.com/read-htm-tid-10144527.html

     

     

    展开全文
  • iOS系统提供了多种键盘,我们可以通过Enum类型设置。但有的时候由于某些特殊业务的需要,我们不得不自定义键盘,比如某些银行的APP处于安全考虑,他们键盘数字的位置是随机的,这个时候只能自定义键盘。幸运的是,...

    iOS系统提供了多种键盘,我们可以通过Enum类型设置。但有的时候由于某些特殊业务的需要,我们不得不自定义键盘,比如某些银行的APP处于安全考虑,他们键盘数字的位置是随机的,这个时候只能自定义键盘。幸运的是,iOS也为我们提供了多种方式自定义键盘。我们可以根据自身情况选择合适的方案。

    typedef NS_ENUM(NSInteger, UIKeyboardType) {
        UIKeyboardTypeDefault,
        UIKeyboardTypeASCIICapable, can enter ASCII characters
        UIKeyboardTypeNumbersAndPunctuation,
        UIKeyboardTypeURL,
        UIKeyboardTypeNumberPad,
        UIKeyboardTypePhonePad,
        UIKeyboardTypeNamePhonePad,
        UIKeyboardTypeEmailAddress,
        UIKeyboardTypeDecimalPad ,
        UIKeyboardTypeTwitter ,
        UIKeyboardTypeWebSearch ,
        UIKeyboardTypeASCIICapableNumberPad ,
        UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable,
    };

    对现有键盘稍加改动

    这种情况适合身份证的输入。由于身份证大部分情况下都是数字,偶尔可能出现“X”字符,如果我们弃用数字键盘直接使用诸如UIKeyboardTypeNumbersAndPunctuation等包含数字和字符的键盘又显得没有太大必要,那稍加改动数字键盘是个不错的选择。思路也很简单,在弹出键盘的同时获取键盘对应的window,在window上加上我们需要的按钮即可。如下是笔者改动的数字键盘。

    下面,我对重点代码做个讲解:

    -(void)keyboardWillShow:(NSNotification *)notification{
        //移除掉原先添加的按钮
        [self.extrakeyButton removeFromSuperview];
        self.extrakeyButton     = nil;
        //这几行代码相信看了之前系列博客的读者应该很熟悉了
        NSDictionary *userInfo  = [notification userInfo];
        CGFloat animationDuration   = [[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue];
        CGRect kbEndFrame           = [userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
        CGFloat kbHeight            = kbEndFrame.size.height;
        //以下是对添加的X按钮Frame的设置
        CGFloat extrakeyButtonX = 0;
        CGFloat extrakeyButtonW = 0;
        CGFloat extrakeyButtonH = 0;
        extrakeyButtonW = (SCREEN_WIDTH - 7) / 3;
        extrakeyButtonH = kbHeight / 4;
        CGFloat extrakeyButtonY = 0;
        extrakeyButtonY = SCREEN_HEIGHT + kbHeight - extrakeyButtonH;
        //创建“X”按钮,并设置相应的属性
        self.extrakeyButton = [[UIButton alloc] initWithFrame:CGRectMake(extrakeyButtonX, extrakeyButtonY, extrakeyButtonW, extrakeyButtonH)];
        [self.extrakeyButton addTarget:self action:@selector(buttonDidClicked) forControlEvents:UIControlEventTouchUpInside];
        self.extrakeyButton.titleLabel.font = [UIFont systemFontOfSize:27];
        [self.extrakeyButton setTitle:@"X" forState:(UIControlStateNormal)];
        [self.extrakeyButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        //获取键盘对应的Window(这段代码只在iOS 11上做过测试,还不够严谨)
        UIWindow *tempWindow = [[[UIApplication sharedApplication] windows] lastObject];
        [tempWindow addSubview:self.extrakeyButton];
        //设置动画
        [UIView animateWithDuration:animationDuration animations:^{
            CGRect frame    = self.extrakeyButton.frame;
            frame.origin.y  = frame.origin.y - kbHeight;
            self.extrakeyButton.frame = frame;
        } completion:nil];
    }

    以上代码只在iOS11的iPhone 8 Plus 上做过测试,可能不具备一定的普遍性,比如iPhone X的键盘位置有一定改变,按钮的位置需要加代码兼容。因此这种解决方案非常局限,只能用于身份证等业务非常简单的备选方案。有个iOS开发者对这个键盘做了个封装,读者可以点击这里获取

    自己设计一个键盘

    iOS中可以通过设置TextField/TextView的inputView来定制键盘,

    //The custom input view to display when the text field becomes the first responder.
    @property(readwrite, strong) UIView *inputView;

    这个自定义键盘就解决了我们开头提到的问题:键盘上的数字是随机排列的0-9,如果需要添加新的按键可以添加到键盘剩下的空白中。下面来讲解一下核心代码的实现:

    CustomKeyboardView *keyView = [[CustomKeyboardView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 176)];
    self.xTextField.inputView = keyView;
    - (instancetype)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            self.backgroundColor = UIColor.lightGrayColor;
            //创建数字数组,并打乱
            NSMutableArray *integers = [[NSMutableArray alloc] init];
            for (NSInteger i = 0; i < 10; ++i) {
                [integers addObject:@(i)];
            }
            NSArray  *shuffledIntegers = [self shuffle:integers];
            //添加数字按钮
            for (NSInteger index = 0; index < 10; ++index) {
                UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
                btn.backgroundColor = UIColor.grayColor ;
                [btn addTarget:self action:@selector(buttonDidClicked:) forControlEvents:UIControlEventTouchUpInside];
                btn.frame = CGRectMake(CGRectGetWidth(self.frame) / 3 * (index % 3 ), 45 *  (index / 3 ) , CGRectGetWidth(self.frame) / 3 - 1, 44);
                NSString *indexString = [NSString stringWithFormat:@"%@",shuffledIntegers[index]];
                [btn setTitle:indexString forState:UIControlStateNormal];
                [self addSubview:btn];
            }
            
        }
        return self;
    }

    打乱键盘中数字的布局方法很多,一般的洗牌算法就可以实现:

    -(NSArray *)shuffle:(NSArray *)array
    {
        if(array == nil || array.count < 1)
            return nil;
        NSMutableArray *resultArray = [NSMutableArray arrayWithArray:array];
        NSInteger value;
        NSNumber *median;
        
        for(NSInteger index = 0; index < array.count; index ++){
            value = rand() % resultArray.count;
            median = resultArray[index];
            
            resultArray[index] = resultArray[value];
            resultArray[value] = median;
        }
        return resultArray;
    }

    最后是点击键盘按钮后的回调处理

    -(void)buttonDidClicked:(UIButton *) sender{
        if (self.delegate) {
            [self.delegate keyboardItemDidClicked:sender.titleLabel.text];
        }
    }

    相比较而言,大家是否觉得这种方法比第一种方法既简单又简洁?


    展开全文
  • 先设置Return按键的样式, textField.returnKeyType = UIReturnKeySearch;//变为搜索按钮 textField.delegate = self;//设置代理 在代理方法中实现你想要的点击操作就可以了 - (BOOL)textFi

    想要修该iOS键盘上Return按钮的样式变为搜索,并且监听它被点击了,做出响应,

    先设置Return按键的样式,

    textField.returnKeyType = UIReturnKeySearch;//变为搜索按钮

    textField.delegate = self;//设置代理


    在代理方法中实现你想要的点击操作就可以了

    - (BOOL)textFieldShouldReturn:(UITextField *)textField

    {

        NSLog(@"点击了搜索");

        return YES;

    }


    这里有一些return按键的其他样式

    typedef NS_ENUM(NSInteger, UIReturnKeyType) {
    
        UIReturnKeyDefault,
    
        UIReturnKeyGo,//去往
    
        UIReturnKeyGoogle,
    
        UIReturnKeyJoin,//加入
    
        UIReturnKeyNext,//下一步
    
        UIReturnKeyRoute,
    
        UIReturnKeySearch,//搜索
    
        UIReturnKeySend,//发送
    
        UIReturnKeyYahoo,
    
        UIReturnKeyDone,//完成
    
        UIReturnKeyEmergencyCall,
    
        UIReturnKeyContinue NS_ENUM_AVAILABLE_IOS(9_0),
    
    };
    
    当然,要显示中文,还得设置info.plist中
    
    Localization native development region  为 cn

    展开全文
  • 需求场景描述 最近项目里有个场景,搜索添加成员的时候,需要类似于微信创建讨论组... 技术要点 ...不管你用的是UITextView还是UITextField,当它们本身没有内容的时候点击删除按键,其实delegate是没有任何响应的,
  • ios获取软键盘完成事件,通过判断input的onBlur事件即可 转载于:https://www.cnblogs.com/telwanggs/p/6477540.html
  • 现在要做一个模拟键盘, 怎么样发送键盘事件,模拟键盘输入呢?
  • 之前在 在iOS虚拟键盘上添加动态隐藏按钮一文中描叙了关于键盘上添加动态按钮的操作,发现键盘上的按钮显示出来的时候很僵硬,此处做了改进,添加了动画过渡,更换了图片,能够让人感觉按钮是随着键盘的动画显示而...
  • IOS自定义键盘搜索键

    2014-09-17 12:08:59
    当系统焦点在input[type=search]元素上时,iOS会自动更改键盘的确认按键为搜索,且按下后自动收齐键盘。 但是我尝试了一次,一直不成功,最后发现,原来是姿势不对。 input[type=search]必须放在一个form
  • IOS键盘弹出和隐藏

    2015-08-03 10:42:13
    原文链接:http://harttle.com/2014/05/25/input-method-ios.htmlIOS 软键盘的行为是直接由开发者控制的,操作系统只提供很少的管理策略。这造成了很麻烦的问题: 关闭软键盘也需要编程。 软键盘造成的界面遮挡需要...
  • appium ios 隐藏键盘

    2019-02-14 11:40:16
    使用hideKeyboard()在一些情况下可能不管用,还会报错 点击空白地方的话也必须要确定点击的是不是空白地方,比较麻烦 想到了另外一种办法:  e.sendKeys("\n") 每次输入完内容,再输入一次"......
  • IOS模拟器键盘设置

    2014-10-11 11:30:57
    Xcode6后模拟器不会自带弹出键盘了,
  • 网页调起键盘,Done那一栏没有与键盘贴纸![图片说明](https://img-ask.csdn.net/upload/201811/21/1542791853_616651.png)
  • // // PostStatusViewController.m // HengTaiXinGolf // // Created by 欧阳荣 on 15/7/31. // Copyright (c) 2015年 HengTaiXinGolf. All rights reserved. ...#import "PostStatusVie
  • iOS的开发中,我们一般使用UITextField、UITextView处理文字输入等操作,大部分情况下我们只需要一两行代码去手动管理键盘的显示隐藏:让UITextField或UITextView成为第一响应者的时候会自动唤起键盘,当我们点击...
  • iOS各种键盘输入框

    2020-06-02 23:32:47
    表情显示YYText,、表情键盘、富文本、评论输入框、聊天输入框、UICollectionView图片拖动、@选人、范围选人、图片压缩、缓存、仿微博发布界面,
  • 今天在开发ios项目时,发现在模拟器上虚拟键盘一直无法弹出,几经研究终于发现原来是模拟器设置问题。 首先点击模拟器在上方菜单栏目Hardware -> Keyboard -> Connect Hardware Keyboard 的勾去除, 再次启动模拟器...
  • 前言: ...可能有的朋友要说了,那还不容易,你直接Toggle Software Keyboard(command+k)不就解决了吗,可是试了好几遍就是弹不出键盘,不知道是什么鬼 1.首先分析一下command+K...由于在iOS8.0及以后的模拟器中,Xcode默认是使
  • 点击上方“iOS开发”,选择“置顶公众号”关键时刻,第一时间...话不多说,下面开始正文(注:本文对应的Demo放在Github上:https://github.com/VernonVan/PPStickerKeyboard)。市面上的表情键盘的分析首先来看一下市
1 2 3 4 5 ... 20
收藏数 4,588
精华内容 1,835