gpt4 book ai didi

ios - 如何浏览文本字段(下一步/完成按钮)

转载 作者:IT老高 更新时间:2023-10-28 12:12:16 27 4
gpt4 key购买 nike

如何使用 iPhone 键盘上的“下一步”按钮浏览所有文本字段?

最后一个文本字段应该关闭键盘。

我已经设置了 IB 按钮(下一步/完成),但现在我卡住了。

我实现了 textFieldShouldReturn 操作,但现在 Next 和 Done 按钮关闭了键盘。

最佳答案

在 Mac OS X 的 Cocoa 中,您有下一个响应者链,您可以在其中询问文本字段接下来应该关注哪个控件。这就是使文本字段之间的制表符起作用的原因。但由于 iOS 设备没有键盘,只有触控,所以这个概念在向 Cocoa Touch 的过渡中未能幸免。

无论如何,这很容易做到,有两个假设:

  1. 所有“可选项卡”UITextField都在同一个父 View 上。
  2. 它们的“tab-order”由 tag 属性定义。

假设你可以覆盖 textFieldShouldReturn: 如下:

-(BOOL)textFieldShouldReturn:(UITextField*)textField
{
NSInteger nextTag = textField.tag + 1;
// Try to find next responder
UIResponder* nextResponder = [textField.superview viewWithTag:nextTag];
if (nextResponder) {
// Found next responder, so set it.
[nextResponder becomeFirstResponder];
} else {
// Not found, so remove keyboard.
[textField resignFirstResponder];
}
return NO; // We do not want UITextField to insert line-breaks.
}

再添加一些代码,假设也可以忽略。

Swift 4.0

 func textFieldShouldReturn(_ textField: UITextField) -> Bool {
let nextTag = textField.tag + 1
// Try to find next responder
let nextResponder = textField.superview?.viewWithTag(nextTag) as UIResponder!

if nextResponder != nil {
// Found next responder, so set it
nextResponder?.becomeFirstResponder()
} else {
// Not found, so remove keyboard
textField.resignFirstResponder()
}

return false
}

如果文本字段的父 View 是 UITableViewCell,那么下一个响应者将是

let nextResponder = textField.superview?.superview?.superview?.viewWithTag(nextTag) as UIResponder!

关于ios - 如何浏览文本字段(下一步/完成按钮),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1347779/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com