麥克.道格拉斯在 1993 年主演一部電影,叫做 Falling Down,台灣翻譯叫「城市英雄」。雖然片名這樣翻譯,裡頭演的不是什麼英雄在城市裡頭做了什麼英雄事蹟,而是一部反英雄片,也或許是因為是個反英雄的故事,所以才翻譯成這樣的名字。
Déjà vu
不久前聽了 josephj 講 Javascript 的模組化開發。就我的理解,所謂模組化開發的目的,在於避免在網頁上有任何的互動,都必須重新載入網頁,以增加網頁互動的速度,因此,我們可以將網頁中的各個區塊切割出來,變成模組。
在將網頁切割成模組之後,模組之間的訊息傳遞就會是個問題-如果 A 模組向 B 模組傳遞一個訊息,但 B 模組這時候已經不在網頁上了,就會產生 exception,所以,在切割模組的同時,也應該要避免模組之間的相互參照。解決方法便是,A 模組如果要向 B 模組傳遞訊息,不是直接呼叫 B 模組,而是將訊息送到一個統一的訊息中心,再由訊息中心將訊息分派給各個訂閱此一訊息的模組。在 joseph 的簡報中,發送訊息稱之為 broadcast,訂閱訊息稱之為 listen。
NSWindow,一些真的非常討厭的
所有跟 NSWindow 相關的設計中,最讓人覺得麻煩的,莫過於 Field Editor。Field Editor 之所以麻煩,在於一開始遇到這個東西造成麻煩的時候,完全讓人想不到原來跟 NSWindow 相關。
NSWindow,一些很討厭的
前一篇提到 NSWindow 跟其他平台上面處理 Window 不一樣的地方,現在來講些一直以來我覺得 NSWindow 討厭的地方。
首先,在 Cocoa 對 Window 的設計中,有個你光看名字實在看不懂什麼意思,不看文件不可能猜得到的屬性,叫做 Key Window-你可以決定一個 Window 是不是 Key Window,也可以詢問目前的 Window 是不是 Key Window。
NSWindow,一些有的沒的
如果你有其他的平台的經驗,來寫 Cocoa 應用程式,可能會發現 NSWindow 的行為跟你想得似乎不太一樣。
iPhone 軟體的無障礙支援
蘋果去年在 iPhoneOS 3.0 中就加入了三項為視力不佳者服務的設計(不過,因為硬體效能的限制,這三項功能只能夠在 iPhone 3Gs 、最新的 iPod Touch,以及 iPad 使用)-如果你沒有辦法清楚看到 iPhone 上預設大小的文字,你可以開啟畫面的局部放大功能,同時用三隻手指點按畫面,就可以放大手指所在的區域;如果覺得白底黑字不夠清楚,可以將畫面反白,切換成黑底白字。
而如果已經完全失去視力,完全無法透過視力操作電腦,iPhone OS 提供一項名為 Voiceover 的語音功能,開啟後會改變一些觸控的操作行為-原本只要按在畫面中某個元件上(例如按鈕等),就會使用這一個元件的功能,在開啟 Voiceover 之後,單點一下,系統會先告訴你目前點到的地方是怎樣的東西,之後再連續點兩下,才是使用這個元件的功能。
Voiceover 可以念出多種語文,除了我們關心的中文之外,英德法義日自然也不會少;相對的,Mac OS X 上面目前還是只有英文而已,希望蘋果之後也會把這些語言的語音支援,加入 Mac OS X 10.7 當中。