我希望文本框內的文本在點擊時突出顯示。突出顯示文本框內的文本
我希望原始文本在有人點擊數字鍵的那一刻被刪除。我嘗試使用clearButtonMode,但後來由於我的文本字段大小非常小,十字圖標完全佔據了文本字段。
任何想法如何實現這一目標?
我希望文本框內的文本在點擊時突出顯示。突出顯示文本框內的文本
我希望原始文本在有人點擊數字鍵的那一刻被刪除。我嘗試使用clearButtonMode,但後來由於我的文本字段大小非常小,十字圖標完全佔據了文本字段。
任何想法如何實現這一目標?
這可以由
(void)textFieldDidBeginEditing:(UITextField *)iTextField {
[iTextField selectAll:self];
}
您需要自己突出顯示。你可以嘗試:
有很多選擇的背景...
編輯:在回答你的問題,以明確的領域只要編輯在你的文本字段會開始前值,您設置的對象,以符合UITextFieldDelegate協議,並實現這個方法:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
textField.text = nil;
}
並突出顯示文本字段的敲擊文字,最簡單的方式實現的僅僅是子類的UITextField,覆蓋becomeFirstResponder並在那裏選擇的所有文本。
如果全部選擇:並不總是在這裏工作是一個修復:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[textField performSelector:@selector(selectAll:) withObject:textField afterDelay:0.f];
}
如果您仍然希望能夠在您使用其他委託功能視圖控制器,我建議你補充一點:
override weak var delegate: UITextFieldDelegate? {
didSet {
if delegate?.isKindOfClass(YourTextField) == false {
// Checks so YourTextField (self) doesn't set the textFieldDelegate when assigning self.delegate = self
textFieldDelegate = delegate
delegate = self
}
}
}
// This delegate will actually be your public delegate to the view controller which will be called in your overwritten functions
private weak var textFieldDelegate: UITextFieldDelegate?
class YourTextField: UITextField, UITextFieldDelegate {
init(){
super.init(frame: CGRectZero)
self.delegate = self
}
func textFieldDidBeginEditing(textField: UITextField) {
textField.performSelector(Selector("selectAll:"), withObject: textField)
textFieldDelegate?.textFieldDidBeginEditing?(textField)
}
}
這樣你的視圖控制器不需要知道你已經覆蓋了委託,你可以在你的視圖控制器中實現UITextFieldDelegate函數。
let yourTextField = YourTextField()
yourTextField.delegate = self
我希望原始文本在有人點擊數字鍵的那一刻被刪除。我嘗試使用clearButtonMode,但後來由於我的文本字段大小非常小,十字圖標完全佔據了文本字段。 – Abhinav 2011-02-13 19:11:06
謝謝。但我不想在編輯模式下清除文本字段。爲此,有一個簡單的屬性「clearsOnBeginEditing」。我希望我的文本被突出顯示,以便如果有人點擊了數字鍵盤中的任何數字,它會做兩件事:1)刪除突出顯示的文本並2)放入新文本。但是,如果有人不採取行動並擺脫數字鍵盤,他仍然可以保留舊的價值。 – Abhinav 2011-02-13 19:20:38