如何单击选项卡栏上的某个按钮,并让交互提示键盘,准备好键入输入空间(如搜索栏)?我在用斯威夫特。我在任何地方都找不到这方面的信息。
最佳答案
你需要子类化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/