en

hi, it seems you are using microsoft internet explorer. it doesn't match web standard and causes problems browsing this site. please please please use mozilla firefox or google chrome instead. thank you!

zh

哦哦!您正在使用Internet Explorer 瀏覽器,它與我們的網頁標準並不相容,可能會導致畫面顯示不正常。
請改用 Mozilla Firefox 或者 Google Chrome 才能正常瀏覽本網站,謝謝!

10.16.2012

虛擬鍵盤的 AccessoryView

 

AccessoryView 指的是透過 UITextView 或是 UITextField 呼叫出虛擬鍵盤時,會在虛擬鍵盤上方出現的一個 UIView,當觸發鍵盤事件時,AccessoryView 會伴隨著虛擬鍵盤出現或者消失,以往我們會透過 NSNotificationCenter 傾聽鍵盤事件,來做出類似的效果,像是製作鍵盤上方的工具列等等,但是現在你只需要透過 setInputAccessoryView: 方法函式即可以完成類似的動作。

在 UITextView 與 UITextField 物件中,你可以找到 setInputAccessoryView: 方法函式,方法如下:
//製作一個AccessoryView
UIView *myAccessoryView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 30)];

//文字敘述
UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 220, 30)];
[myLabel setText:@"TextField - AccessoryView"];
[myLabel setTextColor:[UIColor lightGrayColor]];
[myLabel setBackgroundColor:[UIColor clearColor]];

//圖片
UIImageView *myImageView = [[UIImageView alloc] initWithFrame:CGRectMake(220, 0, 100, 30)];
[myImageView setImage:[UIImage imageNamed:@"DEMO LOGO.png"]];
[myImageView setContentMode:UIViewContentModeScaleAspectFit];

[myAccessoryView addSubview:myLabel];
[myAccessoryView addSubview:myImageView];

//以TextField為例加入自訂的AccessoryView
[myTextField setInputAccessoryView:myAccessoryView];

另外,你也可以參考索引式搜索列表中的 UIKeyboard 元件分類,獲得更多有關虛擬鍵盤的資訊。







沒有留言:

張貼留言