使用UITextView,您如何知道鍵盤上的「完成」或其他操作?UITextView完成按鈕操作 - 返回鍵
我是否需要查看textViewDidChange
中的每個字符,如果有,請注意什麼?
IB選擇的UITextView:
使用UITextView,您如何知道鍵盤上的「完成」或其他操作?UITextView完成按鈕操作 - 返回鍵
我是否需要查看textViewDidChange
中的每個字符,如果有,請注意什麼?
IB選擇的UITextView:
我只是測試這一點。看來,以滿足您的要求:
class ViewController: UIViewController, UITextViewDelegate {
@IBOutlet weak var myTextView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
myTextView.delegate = self
}
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool
{
if(text == "\n")
{
view.endEditing(true)
return false
}
else
{
return true
}
}
}
這可能是在textViewDidChange
通過尋找一個換行符"\n"
做。
否則,一個更好的想法是通過檢查replacementText == "\n"
示例使用func textView(UITextView, shouldChangeTextIn: NSRange, replacementText: String)
:
func textView(UITextView, shouldChangeTextIn: NSRange, replacementText: String){
if replacementText == "\n"{
// do your stuff here
// return false here, if you want to disable user from adding newline
}
// otherwise, it will return true and the text will be replaced
return true
}
謝謝,但是這將是bouth的進入和ok鍵。我需要用戶能夠添加新行。也是「\ n」:-) –
哪個確定按鈕?你的意思是「完成」按鈕? AFAIK,在UITextView中產生「\ n」。 – ramacode
謝謝 - 回車鍵 - 查看更新的問題。 –
使用textFieldShouldReturn:方法
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if textField == yourTextField {
//do something
}
return true
}
謝謝你如何知道它是返回還是完成? –
從這個意義上說,如果你已經指定了你是該呼叫的代表,那麼你將得到該呼叫並不重要。可以完成,去,下一步,無論你在界面生成器中選擇,還是以編程方式設置。 –
@ChrisG。你是否設置了代表? –