故事前景:
? 某直播刷人氣,主播隨機(jī)截圖抽取當(dāng)前留言者為中獎(jiǎng)對(duì)象......
?想著寫(xiě)個(gè)第三方鍵盤(pán)無(wú)限刷 ?然后寫(xiě)了這個(gè)么小玩意,貼出來(lái)互相學(xué)習(xí)
首先當(dāng)然是創(chuàng)建一個(gè)手機(jī)APP項(xiàng)目:(這一步貼上來(lái)真是浪費(fèi)流量.....)

新建項(xiàng)目以后我直接新建了兩個(gè)控件:(為了研究鍵盤(pán)的發(fā)送,和寫(xiě)入數(shù)據(jù)用)

一開(kāi)始我以為蘋(píng)果會(huì)直接提供發(fā)送方法,類似點(diǎn)擊鍵盤(pán)上的(done,return....)找了一圈蘋(píng)果文檔么發(fā)現(xiàn),后來(lái)去墻外發(fā)現(xiàn)了原來(lái)是換一種方式玩的,往下看:
在原來(lái)的項(xiàng)目上添加了一個(gè) target 如圖 (這玩意就是蘋(píng)果的第三方鍵盤(pán)了)

如下是自動(dòng)創(chuàng)建的兩個(gè)類,所有內(nèi)容都從這里面展開(kāi):

首先要解決的第一個(gè)問(wèn)題是 如何插入文字,以微信為例,如何在微信聊天輸入框插入文本:
UITextDocumentProxy 這個(gè)類為我們提供了插入,刪除,等基本操作,但是方法也不多就幾個(gè)基本的
//自己猜
- (void)dismissKeyboard;
//切換鍵盤(pán)
- (void)advanceToNextInputMode;
//判斷是否存在文本(我猜的沒(méi)有試驗(yàn))
- (BOOL)hasText;
//插入文本
- (void)insertText:(NSString*)text;
//刪除(我估計(jì)刪除一個(gè)字符,我猜的沒(méi)試)
- (void)deleteBackward;

這些方法夠用了,一開(kāi)始跑起來(lái)時(shí)候默認(rèn)是長(zhǎng)這樣的:

創(chuàng)建新的view 沒(méi)有什么特別的

跑起來(lái)的時(shí)候讓我選擇個(gè)APP 執(zhí)行 但是我發(fā)現(xiàn) 沒(méi)有選的也可以使用鍵盤(pán),這個(gè)我后期研究差不多了陸續(xù)提交:

最最最重點(diǎn)的是 我們已經(jīng)可以插入文字,接下來(lái)就是解決如何調(diào)用發(fā)送這個(gè)功能了,找了一圈文檔沒(méi)找到,后來(lái)聽(tīng)了一遍 《流川楓與蒼井空》豁然開(kāi)朗,原來(lái)只要插入 @“\n” 就能調(diào)用 別人APP的
-(BOOL)textFieldShouldReturn:(UITextField*)textField
這個(gè)方法。
//發(fā)送
[self.textDocumentProxyinsertText:@"\n"];
接下來(lái)的刷屏就簡(jiǎn)單了,一個(gè)定時(shí) 一插一發(fā) ?一發(fā)一插.....無(wú)窮盡也。
配上幾個(gè)效果圖:

end;
本人 課余喜歡研究? object pascal ,object c ,java,玩些 c# 。歡迎廣大IT男加群 (367276878)互相學(xué)習(xí)
大家好我叫姬拉