自定义键盘,模仿默认的iOS" globe"按键

时间:2016-06-19 23:32:54

标签: ios

在iOS键盘中有一个球形按钮,如果按住它将显示用户可以切换到的键盘弹出列表。

但是在KeyboardViewController类中,我看到制作键盘开关按钮的唯一方法是方法:

        self.advanceToNextInputMode()

这个问题是,虽然它允许你创建一个按钮,如果单击该按钮将切换键盘,这种方法不允许你创建一个按钮,如果你按住它将显示用户当前启用的键盘列表可以通过将手指移动到正确的条目来切换。

我如何模仿默认的iOS globe键盘按钮行为?

1 个答案:

答案 0 :(得分:0)

//从视图中长按或向上滑动时,在视图上方启动inputMode列表,

//在点击视图时前进到nextInputMode。

//示例: [KeyboardButton addTarget:self action:@selector(handleInputModeListFromView:withEvent :) forControlEvents:UIControlEventAllTouchEvents]。

  • (void)handleInputModeListFromView :( nonnull UIView *)view withEvent :( nonnull UIEvent *)event NS_AVAILABLE_IOS(10_0);

Swift Code

override func viewDidLoad() {
    super.viewDidLoad()

    // Perform custom UI setup here
    self.nextKeyboardButton = UIButton(type: .system)

    self.nextKeyboardButton.setTitle(NSLocalizedString("Next Keyboard", comment: "Title for 'Next Keyboard' button"), for: [])
    self.nextKeyboardButton.sizeToFit()
    self.nextKeyboardButton.translatesAutoresizingMaskIntoConstraints = false

    self.nextKeyboardButton.addTarget(self, action: #selector(handleInputModeList(from:with:)), for: .allTouchEvents)

    self.view.addSubview(self.nextKeyboardButton)

    self.nextKeyboardButton.leftAnchor.constraint(equalTo: self.view.leftAnchor).isActive = true
    self.nextKeyboardButton.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
}