自定义软键盘上的Return键的文本

交换芯片数据通路四大核心微架构深度解析 数据通路是交换芯片性能的物理根基,决定着低延迟、高吞吐与突发承载能力。其本质是在硅片约束下对带宽、时序、功耗与统计复用的系统性权衡。Crossbar提供确定性低延迟但受RC延迟与功耗制约;VOQ通过虚拟队列隔离输出争抢,却引入仲裁复杂度与内存开销;Shared Buffer依托统计复用提升缓存利用率,但面临碎片化与管理策略挑战;Cell Fabric以固定长度cell重构交换粒度,在AI与金融等小包敏感场景实现尾延迟稳定。这些架构并非替代关系,而是面向不同网络不确定性(如流量不对称性、突发强度、包长分布)的 阅读详情
#import <UIKit/UIKit.h>

typedef void(^DoneActionBlock)(id);

@interface CustomeTextField : UITextField


@property(nonatomic,retain) UIButton* doneButton;
@property(nonatomic,retain) NSString* buttonTitle;
@property(nonatomic,copy)   DoneActionBlock doneEven;

@end



#import "CustomeTextField.h"

@implementation CustomeTextField


@synthesize doneButton,buttonTitle,doneEven;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        // 注册UIKeyboardDidShowNotification通知的观察者为self
        
        [[NSNotificationCenter defaultCenter] addObserver:self
         
                                                 selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
        
        [[NSNotificationCenter defaultCenter] addObserver:self
         
                                                 selector:@selector(keyboardDidHide:)
         
                                                     name:UIKeyboardDidHideNotification  object:nil];
    }
    return self;
}

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
    // Drawing code
}
*/


// 实现观察者的注册事件

-(void)keyboardDidHide:(NSNotification*)note{
    
    if (self.doneButton) {
        
        self.doneButton.hidden=YES;
        
    }
    
}



- (void)keyboardDidShow:(NSNotification *)note {
    
    UIWindow* tempWindow = nil;
    UIView* keyboard = nil;
    
    tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
    
    if (tempWindow == nil)
    {
        return;
    }
    
    int viewCount = [tempWindow.subviews count];
    
    ////find key board view.
    for(int i=0; i<viewCount; i++)
    {
        keyboard = [tempWindow.subviews objectAtIndex:i];
        
        //keyboard view found; add the custom button to it
        if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2)
        {
            if(([[keyboard description] hasPrefix:@"<UIPeripheralHostView"] == YES) ||(([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)))
            {
                NSLog(@"find UIKeyboard or UIPeripheralHostView");
                [self creatDoneButton];
                [keyboard addSubview:doneButton];
                break;
            }
        }
        else
        {
            if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
            {
                NSLog(@"find UIKeyboard");
                break;
            }
        }
    }
    
}

-(void)creatDoneButton
{
    // 在键盘第1次弹出时,创建按钮
    
    if (self.doneButton == nil) {
        
        self.doneButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        
        self.doneButton.hidden=YES;
        
        //定制按钮上面要显示的文字,也可以在创建该对象时自定义,本文只自定义了按钮上面的显示文字为:buttonTitle
        
        [self.doneButton setTitle:buttonTitle forState:UIControlStateNormal];   // 设置按钮的位置在恰当的地方
        
        [self.doneButton setFrame:CGRectMake(773/2.0, 250/2.0, 180/2.0, 68/2.0)];
        
        [self.doneButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
        
        self.doneButton.titleLabel.font = [UIFont systemFontOfSize:16];
        
        [self.doneButton setTitle:@"hello" forState:UIControlStateNormal];
        
        // 设置按钮背景图片
        
        [self.doneButton setBackgroundImage:[UIImage imageNamed:@"music_starHead_1.png"] forState:UIControlStateNormal];
        
        // 当按钮按下时,触发doneButton方法
        
        [self.doneButton addTarget:self action:@selector(doneButton:)  forControlEvents:UIControlEventTouchUpInside];
        
    }
    
    if (self.editing) {  // 只有当前输入框会显示done按钮
        
        self.doneButton.hidden = NO;
        
    } else {
        
        self.doneButton.hidden = YES;
        
    }
}

//定制按钮的点击事件

- (void)doneButton:(id)sender {
    
    
    
    self.doneButton.hidden=YES;
    
    [self resignFirstResponder];
    
    if (doneEven!=nil) {  // block 回调
        
        doneEven(sender);
        
    }
    
}

- (void)dealloc

{
    
    self.doneButton = nil;
    
    self.doneEven = nil;
    
    self.buttonTitle = nil;
    
    
    
    [super dealloc];
    
}

@end

参考   http://www.cocoachina.com/bbs/read.php?tid=14886&page=1
安卓新奇玩机工具全攻略___联发科MTK v6 限时免费 刷写固件工具操作 摘要:该文介绍一款限时免费的联发科V6刷机工具,支持小米、Vivo、Moto等多品牌设备,包括红米Note14Pro等机型(Klimt/Goya等代码)。工具需注册使用,提供EFS分区备份功能。作者提示工具可能触发杀毒警报,强调禁止非法用途,并说明部分联网工具可能失效。 阅读详情

相关推荐

手把手教你用Qt和QScada框架,从零搭建一个简易的工业组态监控界面

本文详细介绍了如何使用Qt和QScada框架从零搭建工业组态监控界面,涵盖环境配置、界面设计、动态数据绑定及高级功能实现。通过实战案例演示,帮助开发者快速掌握SCADA系统开发技巧,提升工业自动化项目的开发效率。

weixin_32932149的博客 340

iOS 修改键盘的return键

iOS 右下角的return键形式

ZHFDBK的博客 1万+

STM32 FATFS文件系统按行读取SD卡数据

STM32 SD数据实现按行读取

qq_32216815的博客 7824

iOS之UITextField怎么自定义键盘的return键

//初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UIT

Zhi_Sheng的博客 1万+

易灵思FPGA-软件Efinity和Modelsim联仿设置

文章目录前言一、modelsim破解过程二、使用步骤1.引入库2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智

qq_35221855的博客 5362

扩展卡尔曼滤波(EKF)理论讲解与实例(matlab、python和C++代码)

扩展卡尔曼滤波(EKF)理论讲解与实例(matlab、python和C++代码) 文章目录扩展卡尔曼滤波(EKF)理论讲解与实例(matlab、python和C++代码)理论讲解KF和EKF模型对比雅可比矩阵计算计算实例应用实例线性模型CV模型:CA模型非线性模型CTRV模型:CTRV实例(python)small demo抛物线demo飞机高度demoC++实例参考文献 我们上篇提到的卡尔曼滤波是用于线性系统,预测(运动)模型和观测模型是在假设高斯和线性情况下进行的。简单的卡尔曼滤波必须应用在符合高斯分布

O_MMMM_O的博客 10万+

ios键盘done中文_iOS键盘事件实现、控制

记录于2013/6/26:一.点击键盘上的“Done”按钮关闭键盘1.视图控制器实现UITextFieldDelegate协议2.设置文本框属性textField.returnKeyType = UIReturnKeyDone;textField.delegate=self;3. 重写协议方法- (BOOL)textFieldShouldReturn:(UITextField *)textFiel...

weixin_33416318的博客 1197

FFmpeg HDR视频转SDR视频命令

之前蓝光盘电影多是AVC 1080p 8bit SDR格式视频,近两年4K电影流行,下载的蓝光电影多是HEVC 2160p 10bit HDR视频格式。 ffprobe查看有如下属性: # 10bit HDR Stream #0:0(eng): Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 23.98

彼此当年少,莫负好时光 1万+

Flutter TextField设置多行输入时,点击Return键自动隐藏键盘

keyboardType:同上面textInputAction一样都是要主动告诉flutter,防止被修改。singleLineFormatter:屏蔽换行符,这样点击Return键,就不会再插入'\n'了。textInputAction:主动设置,防止被flutter根据。textInputAction的默认值。

aiyakuaile的博客 1301

OceanBase数据库:从入门到精通全栈教程目录(含架构解析、性能调优与实战案例)

《OceanBase数据库专栏》全面解析蚂蚁集团自主研发的分布式关系型数据库,涵盖从基础到高级的完整知识体系。专栏分为入门篇、原理篇、使用篇等七大模块,包含35+篇深度文章,详细讲解OceanBase的高可用架构、Paxos协议、LSM树存储引擎等核心技术。特别提供MySQL/Oracle迁移指南、金融/电商场景实践案例,以及性能调优、运维监控等实战内容。适合开发者、DBA及架构师快速掌握OceanBase的核心特性和行业应用,助力企业实现数据库分布式转型。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 981

AI Agent的知识蒸馏链:多阶段LLM模型优化

随着大语言模型(LLM)规模的不断扩大,如何在保持模型性能的同时提高其部署效率成为关键挑战。本文旨在探讨通过知识蒸馏技术构建多阶段优化链,实现LLM模型的高效压缩和性能优化。研究范围涵盖从基础理论到实际应用的完整知识蒸馏流程,特别关注AI Agent场景下的特殊需求和解决方案。本文首先介绍知识蒸馏的基本概念和背景,然后详细阐述多阶段蒸馏链的核心原理。接着,我们将深入探讨算法实现细节和数学模型,提供完整的代码示例。最后讨论实际应用、工具资源和未来发展方向。

AI大模型应用之禅 350

Swift中键盘的弹出隐藏,页面抬高,Return键等的配置

如果有多个textField需要加入抬高效果,复制if文在其下方并修改textField名称即可。其中textField为UItextField的名称,替换自己的即可。如果想调整抬高的高度,修改以下部分。修改y的参数,数越小抬得越高。在viewDidLoad中添加以下代码即可实现该功能。只需要在工程中添加这个function即可。两个function。

Syuuuu949的博客 1658

coze 怎么读取excel文件,使用循环,数据库完成LLM问答并存储

本文介绍了如何在Coze平台实现"Excel读取+循环处理+LLM问答+数据库存储"的工作流。主要分为三个步骤:1)使用代码节点解析Excel文件为问答对数组;2)通过循环节点遍历问答对,调用LLM节点生成回答;3)利用数据库节点将问答结果存储到Coze内置数据库中。文中提供了代码示例和节点配置说明,并强调了注意事项如Excel格式要求、LLM调用频率控制等。该工作流适用于批量构建知识库问答系统并持久化存储结果。

ZhangJiqun&191cm&85kg 1787

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ios隐藏键盘总结

一、隐藏自身软键盘 当对于有多个UITextField控件都想通过点击“Return”来隐藏自身软键盘的情况,这时的最好办法是使用Did End on Exit事件。在点击软键盘右下角的“Return”按钮后,会触发该事件。 该事件有一个sender参数表示当前文本框,这样便可以编写一个通用的事件处理方法(.m文件)—— [cpp] view plaincopy -

巅峰寂寞. 438

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

键盘的回收

当对于有多个UITextField控件都想通过点击“Return”来隐藏自身软键盘的情况,这时的最好办法是使用Did End on Exit事件。在点击软键盘右下角的“Return”按钮后,会触发该事件。 该事件有一个sender参数表示当前文本框,这样便可以编写一个通用的事件处理方法(.m文件)—— [cpp] view plaincopy - (I

xiaobo0134的专栏 379

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

iOS UITextField的returnkey点击事件

一、隐藏自身软键盘  当对于有多个UITextField控件都想通过点击“Return”来隐藏自身软键盘的情况,这时的最好办法是使用Did End on Exit事件。在点击软键盘右下角的“Return”按钮后,会触发该事件。  该事件有一个sender参数表示当前文本框,这样便可以编写一个通用的事件处理方法(.m文件)——    - (IBAction)TextField_DidEndOn...

weixin_30377461的博客 297

带左标题的文本框UITextField,并实现return键回收键盘效果--iOS 开发

创建文本框的方法(停留在C的概念的时候,理解为创建文本框的函数的封装就行了,实际上还不算封装,但是勉强理解为封装先也可以) code: -(UITextField *)setupTextFieldWithTitle:(NSString *)name                       andFrame:(CGRect)frame                 an

Jack的博客 2676

iOS开发自定义键盘回车键Return Key

在iOS开发中,用户在进行文本输入的时候,往往会用到虚拟键盘上的回车键,也就是Return Key.回车键有时候可以是“完成”(表示输入结束),可以是“下一项”(连续信息输入),可以是“搜索”(网页中输入),可以是“发送”(邮件输入),可以是“加入”(比如连接Wi-Fi),等等。我们需要怎么设置呢?方法如下: (1)选中一个Text Field,点击右侧的"Show the Attributes

乞力马扎罗的雪CYF的博客 1万+

自定义键盘的return键

为什么80%的码农都做不了架构师?>>> ...

weixin_34310369的博客 182
上一篇: iOS高级教程:处理1000张图片的内存优化
下一篇: NSString NSCFString isMemberOfClass 遇到的相关的问题
trandy
博客等级 码龄17年 79粉丝 20原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值