ios-IOS-判断显示的哪个键盘

问题描述

IOS-判断显示的哪个键盘

使用UITextField创建了一个应用,在用户输入的时候显示十进键盘。

我想自己添加完成键:

[ [NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardWillShow:)
                                             name:UIKeyboardWillShowNotification
                                           object:nil];

键盘运行正常,但是问题是在UIView中有另一个textField,我不想在这个添加done按钮。

怎么检测十进键盘和常规键盘?

解决方案

使用textField的inputAccessoryView属性:

txtfld.keyboardType=UIKeyboardTypeDecimalPad;
txtfld.inputAccessoryView=[self toolBarForKeyboardAccessory];

然后:

    -(UIToolbar *)toolBarForKeyboardAccessory
    {
     UIToolbar *keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)];
     keyboardToolbar.barStyle = UIBarStyleDefault;

    UIBarButtonItem* flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

UIBarButtonItem* cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelButtonClicked:)];
 CGRect rect = CGRectMake(1, 5.0, 250, 30);
KeyboardTextField = [[UITextField alloc] initWithFrame:rect];
KeyboardTextField.borderStyle = UITextBorderStyleRoundedRect;
KeyboardTextField.font = [UIFont systemFontOfSize:17.0];
KeyboardTextField.delegate = self;

 UIBarButtonItem *textFieldItem = [[UIBarButtonItem alloc] initWithCustomView:KeyboardTextField] ;

[keyboardToolbar setItems:[NSArray arrayWithObjects: flexSpace,textFieldItem,flexSpace, cancelButton,flexSpace, nil] animated:NO];

return keyboardToolbar;
}
时间: 2024-08-02 00:51:20

ios-IOS-判断显示的哪个键盘的相关文章

iOS中判断Emoji表情问题_IOS

先给大家说下问题描述 服务器端不支持Emoji表情,因此客户端在上传用户输入时,不能包含Emoji表情. 解决方案 在客户端发送请求前,判断用户输入中是否含有表情,如果含有表情,则提示用户重新输入.这个过程关键是如何判断字符串中是否含有Emoji表情.要判断是否含有Emoji表情,必须先了解什么是Emoji. Emoji 是一套起源于日本的12x12像素表情符号,由栗田穣崇(Shigetaka Kurit)创作,最早在日本网络及手机用户中流行,自苹果公司发布的iOS 5输入法中加入了emoji后

ios 怎样判断一个时间是否在另一个时间段内

问题描述 ios 怎样判断一个时间是否在另一个时间段内 怎样判断一个时间是否在另一个时间段内,比如:判断12点是否在七点到九点之间? 解决方案 都转成NSTimeInterval,直接对比 解决方案二: NSDate提供了两个方法,一个earlier ,一个later,通过这两个当中的任何一个,进行两次比较就可以了

iOS 怎么判断用户在另一台设备上登陆过

问题描述 iOS 怎么判断用户在另一台设备上登陆过,去退出另一台设备 解决方案 /*! @method @brief 当前登录账号在其它设备登录时的通知回调 @discussion @result */- (void)didLoginFromOtherDevice;如果另一台设备的登录了,当前设备会执行这个回调的.解决方案二:我这个代理怎么不走?应该写在什么地方解决方案三:遵守EMChatManagerLoginDelegate这个协议,注册代理//注册为SDK的ChatManager的dele

IOS正则表达式判断输入类型(整理)

在开发过程中,有时需要对用户输入的类型做判断,最常见是在注册页面即用户名和密码,代码整理如下: 只能为中文 -(BOOL)onlyInputChineseCharacters:(NSString*)string{ NSString *zhString = @"[\u4e00-\u9fa5]+"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",zhString]

思科 IOS&IOS XE Software CMP远程代码执行漏洞通报

2017年3月17日美国时间下午4点,Cisco官方网站发布Cisco IOS&IOS XE Software 集群管理协议(Cluster Management Protocol)存在远程代码执行漏洞.该漏洞目前为0day漏洞,危害等级高.该漏洞允许未授权访问,远程攻击者可以重启设备和远程执行代码提升权限. Cisco IOS是Cisco的网际操作系统:是一个为网际互连优化的复杂的操作系统:也是一个与硬件分离的软件体系结构,随网络技术的不断发展,可动态地升级以适应不断变化的技术(软件). 根据

CNNVD有关Cisco IOS&IOS XE Software CMP 安全漏洞情况的通报

本文讲的是CNNVD有关Cisco IOS&IOS XE Software CMP 安全漏洞情况的通报,路由交换市场份额领先的思科(Cisco)公司于3月17日发布了IOS和IOS XE Software安全漏洞(CNNVD-201703-840),引起了广泛关注.该漏洞允许未授权的攻击者执行任意代码.提升权限.重启设备等.国家信息安全漏洞库(CNNVD)对此进行了跟踪分析,具体情况如下: 一. 漏洞简介 Cisco IOS/IOS XE Software是美国思科(Cisco)公司为其网络设备

jquery判断用的是键盘还是鼠标的方法

jQuery中的which即可以是键盘的键值,也可以是鼠标的键值. 即当判断用户按下键盘的哪个键时可以使用which,当判断用户按下鼠标的哪个键时也可以用which.它一举两用了. // Add which for key events if ( event.which == null && (event.charCode != null || event.keyCode != null) ) { event.which = event.charCode != null ? event.c

Android 检测键盘显示或隐藏键盘的实现代码

Android 检测键盘是否显示及隐藏键盘的方法~~ Android 中对于键盘的隐藏与显示的文章很多,今天公司项目需求不仅需要键盘隐藏和显示还需要对键盘的状态进行检查,这里做一个简单的实现实例,供大家参考: 实现代码: package com.newland.util; import android.app.Activity; import android.view.View; import android.view.inputmethod.InputMethodManager; /** *

IOS Reachability判断所请求服务器是否超时

开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息.如果没有处理它们,是不会通过Apple的审查的. Apple 的 例程 Reachability 中介绍了取得/检测网络状态的方法. 1.在你的程序中使用 Reachability 只须将该例程中的 Reachability.h 和 Reachability.m 拷贝到你的工程中. 2.然后将 SystemConfiguration.framework 添加进工程. 我使用的版本为 : Version: 2.2 我为Apple的例