2 sachinks SachinKS 于 2013.08.15 14:48 提问

IOS-判断显示的哪个键盘

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

我想自己添加完成键:

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

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

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

1个回答

xinyoulingxi1_tong
xinyoulingxi1_tong   2013.08.15 15:24
已采纳

使用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;
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
显示键盘大小写状态
可以显示键盘大小写状态 开机可以自动启动,大写显示A,小写显示a,非常方便;再也不用为弄不清大小写而烦恼了。 WINALL
iOS判断键盘弹出和隐藏
转自:http://www.ithao123.cn/content-9982085.html 1、首先在.h 中定义属性: keyBoardlsVisible 键盘的状态,键盘弹出其值为 YES ,键盘隐藏为NO,可通过状态的值进行自己相应的操作 @property(nonatomic,assign) BOOLkeyBoardlsVisible;2、.m 中定义两个监测键盘状态的通知:keyb
如何判断键盘按下了哪个值?
        在C#中的KeyCode和KeyValue可以获取你从键盘上输入的值。例如下面的例子:private void textBox3_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e){    textBox1.Text = e.KeyCode.ToString();    textBox2.Text
iOS开发中的键盘显示和隐藏
应用中,跟用户交互功能必不可少! 处理键盘的显示/隐藏可能会比较苦恼,尤其在iOS8出来之后,开放了键盘接口,允许使用第三方输入法,从而导致了键盘事件处理的错综复杂。比如说,像百度输入法,键盘右上角有个隐藏按钮,回车换行键可能位置与系统自带的键盘也有差别。不想安卓手机,人家自带返回键,免去了很多逻辑,而在iphone上,可能通过抛出第一响应者或者通过观察者模式发送隐藏键盘的通知来实现对键盘的
ios 如何判断键盘是否已经显示
在群里看到有人问:ios如何判断键盘已经显示在界面上。 其实这个解决很简单: 写一个单例来管理键盘的状态。 这个单例在初始化方法init种监听2个事件,分别是 UIKeyboardDidShowNotification(键盘弹出通知)和 UIKeyboardWillHideNotification (键盘消失通知 然后在相应的方法中设置一个属性就行了。 大致的实现如下: -(
Android判断软键盘显示状态并隐藏
为了用户体验要隐藏软键盘,但是在网上找了很多方法都是没有用或者判断不了键盘的显示状态,只能弹出或者隐藏。自己试了很多中方法才研究出自己想要的效果,分享一下。 先上代码: /**隐藏系统键盘*/ public static void hideKeyBoard(Context ctx, View view){ InputMethodManager imm = (InputMethodMa
android 键盘状态,获取键盘显示和隐藏
要设置弹出键盘是否覆盖Activity的view,或者软键盘的显示隐藏状态,需要用到Activity的一个属性: android:windowSoftInputMode 该属性在AndroidManifest.xml中设置,如下: <activity android:windowSoftInputMode=["stateUnspecified",
安卓开发——如何判断软键盘是否弹出(显示)
在开发中涉及到了如下情况:表情界面与软键盘只显示其一,与当前主流社交软件的逻辑一致。 这时就需要根据情况获取当前软键盘是否处于弹出状态,网上搜了搜,都是一些拷贝来拷贝去的无用办法,如: 1、 if(getWindow().getAttributes().softInputMode == WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE){
android 判断软键盘是否弹出
/** * 判断软键盘是否弹出 */ public static boolean isSHowKeyboard(Context context, View v) { InputMethodManager imm = (InputMethodManager) context.getSystemService(context.INPUT_METHOD_SERVICE); if (i
手机端网页监测是否打开键盘
做H5页面经常会遇到页面有输入功能的 例如这种的: ps:测试机仅有一台mi4c 最开始想,键盘弹出应该占用了浏览器的窗口,所以弹出键盘时页面的可用高度一定是变化的,换句话说就是弹出键盘导致浏览器的高度被压缩。 所以通过对比输入框获取焦点前后浏览器窗口高度的变化,可以判断出键盘是否弹出。document.documentElement.clientHeight // ==>640 docum