有沒有辦法給UITextField
顯示的鍵盤添加取消按鈕?查看UITextInputTraits
協議參考,我找不到任何東西,包括嘗試使用不同的鍵盤類型。向UITextField鍵盤添加一個取消按鈕
回答
您可以創建一個輸入附件視圖,它可以在鍵盤上方顯示UIToolBar,然後在其上添加一個取消按鈕。查看下面的文檔鏈接,瞭解inputAccessoryView屬性。
這是一個我爲一個TextView的一個例子。創建輸入附件視圖方法是從「textViewDidBeginEditing」中調用的。然後創建輸入附件視圖,在我的情況下添加三個按鈕和一個空格鍵。
我希望有幫助。
-(void)textViewDidBeginEditing:(UITextView *)textView {
[self createInputAccessoryView];
[textView setInputAccessoryView:_inputAccessoryView];
self.myTextView = textView; }
-(void)createInputAccessoryView {
_inputAccessoryView = [[UIToolbar alloc] init];
_inputAccessoryView.barStyle = UIBarStyleBlackOpaque;
[_inputAccessoryView sizeToFit];
_inputAccessoryView.frame = CGRectMake(0,_collageView.frame.size.height - 44, _collageView.frame.size.width, 44);
UIBarButtonItem *fontItem = [[UIBarButtonItem alloc] initWithTitle:@"Font"
style:UIBarButtonItemStyleBordered
target:self action:@selector(changeFont:)];
UIBarButtonItem *removeItem = [[UIBarButtonItem alloc] initWithTitle:@"Remove"
style:UIBarButtonItemStyleBordered
target:self action:@selector(removeTextView:)];
//Use this to put space in between your toolbox buttons
UIBarButtonItem *flexItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil];
UIBarButtonItem *doneItem = [[UIBarButtonItem alloc] initWithTitle:@"Done"
style:UIBarButtonItemStyleDone
target:self action:@selector(dismissKeyBoard:)];
NSArray *items = [NSArray arrayWithObjects:fontItem,removeItem,flexItem,doneItem, nil];
[_inputAccessoryView setItems:items animated:YES];
[_myTextView addSubview:_inputAccessoryView];
}
安德魯,最近怎麼樣?它是迪瑪R!
據我所知,沒有很好的方法來做你想做的事情。您可以輕鬆地列出在類型內置的一個挑here
typedef enum {
UIReturnKeyDefault,
UIReturnKeyGo,
UIReturnKeyGoogle,
UIReturnKeyJoin,
UIReturnKeyNext,
UIReturnKeyRoute,
UIReturnKeySearch,
UIReturnKeySend,
UIReturnKeyYahoo,
UIReturnKeyDone,
UIReturnKeyEmergencyCall,
} UIReturnKeyType;
你可以做什麼或者添加包含您的取消按鈕鍵盤的頂部視圖,或者嘗試通過視圖層次遍歷並以這種方式覆蓋按鈕上的按鈕(儘管此方法不可靠)。不幸的是,這是Apple尚未提供太多定製的一件事。
編輯:其實我認爲我從一開始就誤讀了你的問題,因爲你不希望取消按鈕作爲主返回按鈕。在這種情況下,輸入附件視圖肯定是要走的路。
哇,真是個倒退,很高興在這裏見到你。並感謝您的答案。是的,我想給用戶一個額外的取消按鈕,以防他們想取消文本輸入。 –
Kevin Horgan的答案就是你想要的答案,這是實現這一目標的正確方法。 – Dima
我剛剛投下了UIToolbar
到在Interface Builder我的視圖控制器,然後:
@property IBOutlet UIToolbar *keyboardAccessory;
-(void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// this is so I can edit it in Interface Builder, but it doesn't show in the view
[keyboardAccessory removeFromSuperview];
}
-(BOOL) textFieldShouldBeginEditing:(UITextField*)textField {
textField.inputAccessoryView = keyboardAccessory;
return YES;
}
-(IBAction) pressedCancelButton {
[self.view endEditing:YES];
}
瞧!
- 1. 添加一個按鈕隱藏鍵盤
- 2. UITextField鍵盤返回按鈕標題
- 3. 鍵盤可以做和取消按鈕?
- 4. 使取消按鈕更低的鍵盤
- 5. 取消按鈕解僱的UISearchBar鍵盤
- 6. UITextField鍵盤不會消失
- 7. 在UITextField中添加按鈕
- 8. 按鈕點擊添加UItextfield
- 9. 將按鈕添加到uitextfield
- 10. 將按鈕添加到軟鍵盤
- 11. 取消UIScrollView中的UITextField十進制鍵盤鍵盤
- 12. 自定義鍵盤 - 長按鍵盤按鈕時添加多個表情符號
- 13. 如何在iPhone的默認鍵盤上添加一個按鈕?
- 14. 在自定義鍵盤中添加下一個按鈕
- 15. UITextField鍵盤返回按鈕應該改變爲完成按鈕
- 16. 爲UITextField的.NumberPad鍵盤添加一個減號
- 17. 如何向iOS鍵盤添加'完成'按鈕[Webview/Phonegap/Cordova]
- 18. 添加一個UITextField到一個按鈕上的UITableView點擊
- 19. 在鍵盤可見時向UITextField添加輸入附件視圖
- 20. 當選擇UITextField時,在iphone鍵盤上添加自定義圖像按鈕
- 21. 向gridView添加一個圖像按鈕
- 22. 向UiTableViewCell添加一個刪除按鈕
- 23. 向UITableViewCell添加一個按鈕
- 24. UITextField控制關閉按鈕和鍵盤返回鍵
- 25. 在UITextField中按下清除按鈕時隱藏鍵盤
- 26. 鍵盤與UITextField
- 27. 當我添加一個新按鈕時,舊按鈕消失
- 28. 有一個按鈕將文本快速添加到UITextField中
- 29. 當UITextField彈出鍵盤時,UIView消失
- 30. 使用TextWatcher在EditText上添加一個取消按鈕/圖標
感謝這一點,雖然如果你只是做一個取消按鈕,不會在UITextField旁邊放一個取消'UIBarButtonItem'來完成同樣的事情而沒有輔助視圖? –
想想吧,那正是我要做的。儘管這是一個非常好的答案,但它絕對能解決我的問題,並將其標記爲已接受。 –
@kevinhorgan爲什麼你沒有將self.myTextView直接分配給輸入屬性? – Camus