當用戶觸摸特定文本字段或文本視圖時,如何將完成按鈕添加到UINavigationbar?在UINavigationbar中添加完成按鈕
或者更好的方法是檢測鍵盤顯示時,然後顯示按鈕。
我想完成按鈕來關閉標準Notes應用程序中的鍵盤。
當用戶觸摸特定文本字段或文本視圖時,如何將完成按鈕添加到UINavigationbar?在UINavigationbar中添加完成按鈕
或者更好的方法是檢測鍵盤顯示時,然後顯示按鈕。
我想完成按鈕來關閉標準Notes應用程序中的鍵盤。
你可以嘗試類似的措施:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@selector(doneEditing)];
[[self navigationItem] setRightBarButtonItem:doneButton];
[doneButton release];
}
也
- (void)textViewDidBeginEditing:(UITextView *)textView
{
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@selector(doneEditing)];
[[self navigationItem] setRightBarButtonItem:doneButton];
[doneButton release];
}
與以下自定義,只要你喜歡
- (void)doneEditing {
[[self view] endEditing:YES];
}
然後刪除- (void)textFieldDidEndEditing:(UITextField *)textField
,也是按鈕在- (void)textViewDidEndEditing:(UITextView *)textView
只記得設置代表!
你應該採用委託協議,因爲我相信你在那裏有優勢。你可以做到這一點 -
- (void)textViewDidBeginEditing:(UITextView *)textView {
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:textView
action:@selector(resignFirstResponder)];
self.navigationItem.rightBarButtonItem = doneButton;
[doneButton release];
}
但是,如果你要觀察通知,你不知道哪一個是第一響應者。當然,如果你只有一個對象需要擔心,這並不是什麼大問題。
謝謝。我有一個textfield和一個textview。有沒有類似的代表textview? – jarryd 2011-05-25 22:39:41
是的。查看文檔:http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextViewDelegate_Protocol/Reference/UITextViewDelegate.html – PengOne 2011-05-25 22:41:00