iPhone开发【十六】实现点击一个UIImageView时打开键盘
发布日期:2021-09-28 18:46:31
浏览次数:8
分类:技术文章
本文共 2133 字,大约阅读时间需要 7 分钟。
转载请注明出处,原文网址: 作者:张燕广
昨天发的一个帖子:
很多人不理解这样的需求,但是确实存在,具体就不细说了。
同样的需求,做Android客户端时在没有文本框时也可以通过inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);调出系统键盘。
但是,IOS中貌似没有这样的接口,所以可以采用“隐藏文本框”的方式,调出系统键盘,具体实现如下:
1、在ViewController.xib上放置一个ImageView和一个UITextField(代码中将其设置为隐藏),如下:
2、ViewController.h如下:
- <span style="font-size:18px;">//
- // ViewController.h
- // showKeyBoard
- //
- // Created by Zhang Yanguang on 12-11-27.
- // Copyright (c) 2012年 MyCompanyName. All rights reserved.
- //
- #import <UIKit/UIKit.h>
- @interface ViewController : UIViewController<UITextFieldDelegate>{
- BOOL hasOpenKeyBoard;//是否打开键盘
- }
- @property(strong,nonatomic)IBOutlet UIImageView *imgView;
- @property(strong,nonatomic)IBOutlet UITextField *textField;
- -(IBAction)showKeyBoard:(id)sender;
- @end
- </span>
3、ViewController.m如下:
- <span style="font-size:18px;">//
- // ViewController.m
- // showKeyBoard
- //
- // Created by Zhang Yanguang on 12-11-27.
- // Copyright (c) 2012年 MyCompanyName. All rights reserved.
- //
- #import "ViewController.h"
- @interface ViewController ()
- @end
- @implementation ViewController
- @synthesize imgView;
- @synthesize textField;
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- // Do any additional setup after loading the view, typically from a nib.
- //隐藏文本框
- textField.hidden = YES;
- //设置代理
- textField.delegate = self;
- hasOpenKeyBoard = false;
- }
- - (void)viewDidUnload
- {
- [super viewDidUnload];
- // Release any retained subviews of the main view.
- }
- - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
- {
- return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
- }
- -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
- NSLog(@"touchesBegan...");
- //[imgView becomeFirstResponder];
- if(!hasOpenKeyBoard){
- [textField becomeFirstResponder];
- }else{
- [textField resignFirstResponder];
- }
- hasOpenKeyBoard=!hasOpenKeyBoard;
- }
- #pragma mark UITextFieldDelegate Methods
- - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
- NSLog(@"string=%@",string);
- return YES;
- }
- @end
- </span>
方法shouldChangeCharactersInRange中可以监听到键盘输入。
4、效果如下:
转载地址:https://blog.csdn.net/h3c4lenovo/article/details/8563875 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月05日 08时40分26秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
android lk DEFINES定义的环境变量的值
2019-04-27
到底什么是5G CPE?
2019-04-27
android启动---lk入口文件crt0.s解析
2019-04-27
一个好用的开源在线时序图/波形图(Timing Diagram)绘制网站
2019-04-27
android编译error, forbidden warning出错问题解决
2019-04-27
人工智能相关概念
2021-06-30
高通SDM450+android9.0读显示屏ID
2021-06-30
linux系统/proc/interrupts中断节点
2021-06-30
机器人网站、论坛、厂家等链接收集
2021-06-30
机器人基础知识汇聚
2021-06-30
激光雷达
2021-06-30
展会收集
2021-06-30
ROS系统相关链接
2021-06-30
六轴姿态及roll、pitch和yaw
2021-06-30
机器人差速驱动方式(Differential Drive)
2021-06-30
智能音箱AEC中的回采信号
2021-06-30
锤子心态/心理
2021-06-30
人工智能相关概念---算法、算力和模型
2021-06-30