2008年6月19日 星期四

應用NSTabView切換視窗內容

在設計軟體時,有時候會需要在兩個不同的View之間做切換。
舉例來說,當我們在iTunes中,點擊左方資料庫的「音樂」,「影片」或「電視節目」,在右方的Detail View中,預設會以列表的方式呈現。
但當我們點擊到「Apple Store」時,則右方的Detail View會以類似網頁的方式,呈現目前Apple Store的內容。
在過去,剛開始學習Cocoa的時候,因為不清楚可用的元件,對於這類的需求,在實作上,往往會以一個Custom View做為Wrapper,用置換其Content View的方式,來達成切換內容的需求。
不過事實上,Cocoa已經提供了好用的元件--NSTabView,能夠更快速的完成類似的UI。
一般我們在使用NSTabView的時候,都是在需要明確的Tab元件 ,也就是需要有一個地方能夠秀出
1. 目前的View的目的,或是名稱。
2. 其他可選用的View。
不過上面我所舉的例子,則比較類似UI狀態的切換,通常不會秀出這些資訊--在這種情形下,一般我們不太會去考慮用到NSTabView。
但是,Cocoa的NSTabView,提供了另一種型態的使用法--Tabless TabView。利用NSTabView的Tabless type,就可以不用秀出Tab,看起來就如同用Custom View去實作View的切換一樣。
而使用Tabless type的View,還有一個好處,就是可以自行去更換Tab的樣式,而不需撰寫NSTabView的子類別。
Xcode的UI中,Project/Debug View的切換,就是一個實際應用的例子。

2008年6月12日 星期四

關於「iPhone程式開發入門」一文,以及字首字根檔案

在過去一年來,一直有網友來信要求我所整理的字首字根檔案的權限。
而自iPhone SDK公布以來,也有些有興趣的朋友,留言或來信希望我能開放「iPhone程式開發入門」的權限。
在此表達一下個人在這個時點上,對這兩組文章的態度與作法。
首先,字首字根檔案的來源,是個人參加來欣方有毅老師的GRE課程的上課講義暨筆記的重新整理。
在目前的著作權法的架構下,公開此檔,可能會損害到方有毅老師的權益。
而個人目前也沒有意願,時間,精力,去與方老師商量開放的可能性。
網友如果想要此檔案,個人之前完成時,已寄送一份予方老師,你可以報名來欣的課程,我相信方老師應該會很願意分享給修課的學生。
至於「iPhone程式開發入門」一文,在目前(iPhone SDK beta7)的授權條款下,依然無法公開討論。
我本人,對iPhone SDK的授權條款,固然有諸多不滿,但基於個人之理念,在蘋果未正式宣告釋出之前,我不會再發佈相關文章。
以上,對於需要這些檔案的朋友,還請見諒。

2008年5月21日 星期三

使用CoreData的小技巧

上個月在參加過CocoaHeades後,自己也試著使用CoreData。
雖然在現場藍兄講得清楚明白又容易,自個兒嘗試使用卻不是那麼回事。
果然是看人挑擔不吃力,自個兒挑擔壓斷肩...

在使用CoreData時,個人覺得比較麻煩的是,CoreData的說明文件似乎已預設開發者都對資料庫的設計有一定的基礎,所以並沒有提到一些基本的資料庫程式的原則-像是怎麼規劃,如何做正規化,Data Model的圖怎麼對應到實際的資料庫與呈現的介面之上? 除此之外,其他的地方照著文件一步步進行,也還算是輕鬆如意。

2008年4月21日 星期一

iPhone程式開發入門

初稿...
iPhone程式開發入門
重新檢視一下,其實寫得蠻瑣碎的....
===================================
經人提醒,可能違反NDA,先暫時鎖上。
另將Objective-C基本語法部分抽出如下:
Objective-C基本語法

2008年3月14日 星期五

Cocoa for Newbie

昨日CocoaHeads的投影片,順帶做一下Goggle Presentation的測試...



完整連結如下:Cocoa for Newbie

2008年3月11日 星期二

寫給初學者的簡易程式設計概念

這篇文章,是為了讓初學者能大略了解傳統的(循序的)程式設計而寫的。
原本是要做為CocoaHeads的講稿的前言,但實在難以在有限的時間之內講述明白,因此寫成文章,在此先行釋出。
寫給初學者的簡易程式設計概念

2007年11月28日 星期三

Leopard 上的倉頡輸入法

「疏」
Leopard:弓一木中
倉頡三/五代:弓一卜戈山
從字形及原則來看,是Apple的錯。

Unit Test on Leopard

日前購入新款MacBook,首要之事,便是將過往專案及測試程式移至新環境。
相對於過去每次昇級Xcode,均需將專案檔版本一同昇級,此次從Xcode 2.0轉換為Xcode 3.0, 倒是完全無須更動專案檔。也許可以視為Xcode發展已趨穩定的一個表徵。

不過,在轉換環境的過程中,依然有些許不順之處。其中之一,便是 Unit Test Target 的環境改變。
在Mac OS X Tiger 及 Xcode 2.x 的環境下, Unit Test 相關 Frameworks 向來是置於Developer/SDKs/MacOSX10.x.sdk/Library/frameworks/ 或 System/Library/Frameworks/ 之下.
然而,在Leopard及Xcode 3.0的環境中,為了達成各項開發工具的可攜性,將部分frameworks放置的位置改變了。
詳細的改變如以下聯結所述:Xcode frameworks
此一改變,並未列於Xcode 3.0的release note之中,因此讓我花了相當多的時間在找尋其位置。
甚至一度想要自行下載原始碼編譯。這應該算是Apple在編寫文件上一個疏漏之處。