自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Cocoa界面設(shè)計(jì)之WebKit和CSS合作實(shí)現(xiàn)換膚實(shí)例

移動(dòng)開發(fā) iOS
本文介紹的是Cocoa界面設(shè)計(jì)之WebKit和CSS合作實(shí)現(xiàn)換膚實(shí)例,介紹了WebKit和CSS合作實(shí)現(xiàn)換膚的實(shí)例,先來詳細(xì)內(nèi)容。

Cocoa界面設(shè)計(jì)之WebKit和CSS作實(shí)現(xiàn)換膚實(shí)例是本文要介紹的內(nèi)容,這是一個(gè)很不可思議的東西,真的很有趣,超有想法。一改傳統(tǒng)的直接繼承View子類去支持不同皮膚的控件的形式,而是變了一種思維,直接通過添加一個(gè)WebKit,通過修改CSS去改變控件的樣子。這樣做的好處是CSS非常容易修改,而效果看起來還非常棒!下面是正文。

又來了一堆Cocoa源代碼:這次向你們展示的是如何通過CSS把你的程序做成可更換皮膚的形式。你可以下載代碼。地址:http://mattgemmell.com/files/source/skinnableapp.zip

可換膚程序是一個(gè)簡單的Cocoa應(yīng)用程序,這個(gè)程序展示了如何使用嵌入式的WebKit WebView簡單地在你的應(yīng)用程序上增加“換膚”特效。演示包括把你的應(yīng)用程序界面通過可更改的CSS文件變?yōu)楦鞣N其他效果,還演示了如何在Cocoa和HTML文檔中間交互數(shù)據(jù)。通過這種方式,為你的應(yīng)用程序增加不同的“主題”或者“皮膚”變成了很方便的一件事,你可以隨意定制自己Cocoa應(yīng)用程序的界面。

這個(gè)例子展示給你:

- 如何動(dòng)態(tài)切換CSS主題

- 如何從Objective-C里向WebView添加內(nèi)容

- 如何從HTML文檔中獲取數(shù)據(jù)

- 如何替換現(xiàn)存的HTML文檔

- 如何允許HTML控件(如表單元素或者鏈接)調(diào)用Cocoa物件中包含的方法

代碼在Mac OS X 10.5(Leopard)中編寫,項(xiàng)目需要Xcode 3,但是代碼本身可以在Tiger上運(yùn)行。你可以直接在這里下載,也可以從Matt的公開subversion源碼庫中提取,地址是svn.cocoasourcecode.com

這里有幾個(gè)程序的截圖,CSS做的不怎么漂亮,請(qǐng)還是關(guān)注代碼吧:)下圖:
‍‍
更新:現(xiàn)在禁止了在WebView中選擇文字,而且去掉了文本選擇形式的鼠標(biāo)指針,這樣看起來更像是Cocoa的界面了。

幾個(gè)關(guān)鍵點(diǎn):原文并未提及

  1. [webView setDrawsBackground:NO];  
  2. [webView setUIDelegate:self];  
  3. [webView setFrameLoadDelegate:self]; 

這里需要設(shè)置兩個(gè)托管,才可以使用事件。

  1. [[webView windowScriptObject] setValue:self forKey:@"AppController"];  

配置webView,以便javascript可以與其對(duì)話。

1 你可以在Javascript中與webView進(jìn)行對(duì)話,調(diào)用方法為:"window.AppController"

2 你必須特別聲明允許從JavaScript中調(diào)用的方法,下文將給出解釋。

3 我們?cè)谶@個(gè)類中從Javascript調(diào)用的方法為-showMessage:,我們?cè)贘avaScript中使用window.AppController.showMessage_() 注意***的冒號(hào)變成了下劃線。

這個(gè)文檔中給出了方法名字的解釋,請(qǐng)參閱:

 http://developer.apple.com/documentation/AppleApplications/Conceptual/SafariJSProgTopics/Tasks/ObjCFromJavaScript.html

  1. (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector  

方法中,為了安全起見,你必須特別允許允許從JavaScript中執(zhí)行的方法。做如下調(diào)用:

  1.  if (aSelector == @selector(showMessage:))   
  2.  {  
  3.       return NO;   
  4.  }  
  5. return YES; 

那么只有showMessage:這個(gè)方法可以在JavaScript中被調(diào)用,其他的方法都不允許調(diào)用。

小結(jié):Cocoa界面設(shè)計(jì)之WebKitCSS合作實(shí)現(xiàn)換膚實(shí)例的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-02-14 14:19:01

FLUDiPad應(yīng)用

2011-01-26 16:34:10

GowallaiPhone應(yīng)用

2011-01-26 15:47:45

SquarespaceiPhone應(yīng)用

2011-02-16 14:15:58

FringAndroid應(yīng)用iOS應(yīng)用

2011-02-14 14:08:25

Awesome NotiPhone應(yīng)用

2011-02-13 15:24:05

ShopkickiPhone應(yīng)用

2011-02-13 15:41:38

Trip JournaiPhone應(yīng)用

2011-02-16 14:50:09

iPhone應(yīng)用Panelfly Co

2011-05-24 16:07:21

UI設(shè)計(jì)移動(dòng)應(yīng)用

2011-01-27 18:03:53

iPhone應(yīng)用friends aro

2011-12-20 10:42:22

Android應(yīng)用界面設(shè)計(jì)

2011-06-01 10:58:57

2011-09-09 16:00:02

Android Web實(shí)例

2011-06-01 16:50:05

Android ListView

2015-07-09 10:25:45

界面設(shè)計(jì)UI設(shè)計(jì)

2011-06-01 10:30:41

用戶界面

2019-07-08 14:33:25

資訊類APPAPP界面設(shè)計(jì)

2011-05-19 08:49:01

使用片段界面設(shè)計(jì)Android

2014-09-04 14:51:00

小屏幕界面設(shè)計(jì)app

2011-04-22 11:01:36

框架布局界面設(shè)計(jì)Android
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)