如何单击选项卡栏上的某个按钮,并让交互提示键盘,准备好键入输入空间(如搜索栏)?我在用斯威夫特。我在任何地方都找不到这方面的信息。

最佳答案

你需要子类化UITabBarController并重写func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem)
这允许您对被点击的特定item做出反应。
然后,您可以发送Notification或调用视图控制器中的函数,然后调用textField.becomeFirstResponder()
我有一个应用程序对类似于以下的UITabBarItem按键做出反应:

/// Enum cases must have the same name as the title of each tab bar item
enum MainTabBarItems: String {
  case tab1, tab2, tab3, tab4
}

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
  guard let itemTitle = item.title?.lowercased() else { return }
  guard let tappedItemIndex = MainTabBarItems(rawValue: itemTitle)?.hashValue else { return }

  if tappedItemIndex == selectedIndex {
    NotificationCenter.default.post(
      name: Constants.Notifications.tabBarItemTapped[tappedItemIndex],
      object: nil
    )
  }
}

Constants.Notifications.tabBarItemTapped是一个字符串数组,每个字符串对应于应用程序中的选项卡栏项。
然后在视图控制器中,我将:
NotificationCenter.default.addObserver(self, selector: #selector(tabBarItemWasTapped), name: Constants.Notifications.tabBarOneTapped, object: nil)

目标:
func tabBarItemWasTapped() {
  // react to the tab bar press
  textView.becomeFirstResponder()
}

关于ios - 单击选项卡栏按钮后,如何在输入空间上提示键盘?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43527626/

10-09 18:32