2013年8月28日 星期三

[ios]縮你的鍵盤

作為一個xcode的新手,筆者今天卡在一個畫面相當久
诶........不好意思,請問我該怎麼關掉這個鍵盤

起初我一直認為一定是我沒用過iphone跟他不熟不會操作
抑或是模擬器少了什麼鈕可以按
尋尋覓覓了許久....我放棄,還是請出google大神吧
不料在01上看到了這麼一篇

WTF!!?只是要關閉一個鍵盤居然得使用密技!?
同時在搜尋結果中看到了一個"Cxxxa輕鬆收起你的iPhone鍵盤"的app
連這種app都出現了,我更加確定的相信這個結論........
iPhone的鍵盤沒有讓你收起它的地方!!!

好吧,介面上辦不到,我從程式裡動手總行吧
接下來才是今天的重點
怎麼收鍵盤?
其實只是很簡單的一個method
    [self.tbTime resignFirstResponder];
tbTime是我的TextField
我有兩個TextField可能造成這個鬼擋牆的鍵盤
所以就是
    [self.tbLength resignFirstResponder];
    [self.tbTime resignFirstResponder];
不用特別去判斷TextField是否有focus,沒有focus呼叫這method也不會怎樣
接著就是觸發的時機點了
搜尋鈕的Click事件是一定要的,事件裡複製貼上就好了
接著額外衍生的問題來了
大部分查到的做法都是利用背景Click的時候來縮鍵盤
但我整個畫面都被MapView佔領了,背景就那麼一點點
且MapView沒有Click事件可以用耶
這時就要靠UITapGestureRecognizer這東西了
先直接奉上程式
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc]
                                   initWithTarget:self action:@selector(handleGesture:)];
    tgr.numberOfTapsRequired = 1;
    [self.myMap addGestureRecognizer:tgr];
    
    [self refreshLocationData];
}
這段是說,我在load的時候宣告了一個UITapGestureRecognizer
handleGesture做的事情如下
- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer
{
    [self.tbLength resignFirstResponder];
    [self.tbTime resignFirstResponder];
}
就是剛剛隱藏鍵盤的那兩行啦
接著指定這個tgr觸發的tap次數,我們希望點一下就縮鍵盤,所以是1
最後再將tgr新增到MapView中就大功告成啦!!

2013年8月20日 星期二

[ios]iOS6 程式設計實戰 - 136個快速上手的開發技巧

非常不愛看書的我
今天要來推薦一本工具書
碁峯的iOS6 程式設計實戰 - 136個快速上手的開發技巧
在開始介紹這本書之前,首先必須告知
這本書並不是一本程式語言的教學
所以他不會從Objective-C的基礎開始教起
僅有在一開始稍微介紹了這語言的特色與需要注意的部分而已
而Objective-C的語法教學在網路上有相當多的資源可以學習
所以我們也不需要買一本從頭到尾都在說語法的書

筆者選書第一件事一定是看目錄
如果目錄的章節看起來就是
第一章 背景介紹
第二章 開發介面介紹
第三章 變數型態
第四章 迴圈與判斷式
這種書我會毫不考慮地放回書架上略過
因為每本書都長這樣,網路上找來的資源也都長這樣
那你該如何說服我買你呢?
回到這本書的目錄
如圖中所示
每一章介紹的是一個技術功能
書中一開始便告訴你,不建議你把這本書從第一頁開始看到最後一頁
因為有些東西你並不需要
但你可以把每個章節的標題掃過一次
當你開始開發一個app時,你會碰到各式各樣的功能需要實現
你需要開始尋找Objective-C以及iOS能幫你做什麼
這時再回到目錄來,翻到你需要的章節,取得你想學的東西

章節內的介紹我只能說是符合我的喜好
未必是適合大家
每個段落個一開始先簡單介紹過本段落的主要功能
並告知應先讀過哪些章節
接著的重頭戲,他將整個實作過程以條列式方式一步一步寫出
並明確說明每個動作應該寫在哪個地方
條列式最棒了!
你可以無腦的完全照著打過一次
再依照個人需求來做調整、修改
筆者學生時從來沒當過程式作業的源頭
因此拿別人的程式來改這件事完全就是我的style

當然,也不是多厚的一本書
當中一定會有一些變化的應用沒有完全說明
但有了基本用法以後,相信你一定可以在google上面以關鍵字找到更多變化
有明確的步驟以及修改即可完成的半成品
開發app這檔事,請容許我報告,完全沒有問題!!

書本資訊
書名:iOS6程式設計實戰  136個快速上手的開發技巧
出版社:碁峯
作者:朱克剛
定價:480 (p購物可以找到79折)