如何检测键盘是否显示在Xcode UI测试中

use*_*793 12 iphone xcode ios swift uitest

我正在新的Xcode 7 UI测试框架下用swift编写UI文本.要求是测试系统键盘是否显示在应用程序中.谁能给我一个如何做到的线索?谢谢

Jor*_*Dor 22

试试这个检查:

let app = XCUIApplication()
XCTAssert(app.keyboards.count > 0, "The keyboard is not shown")
Run Code Online (Sandbox Code Playgroud)

或检查特定的键盘键,如:

let app = XCUIApplication()
XCTAssert(app.keyboards.buttons["Next:"].exists, "The keyboard has no Next button")
Run Code Online (Sandbox Code Playgroud)

您还可以控制键盘上的交互:

let app = XCUIApplication()
app.keyboards.buttons["Next:"].tap()
Run Code Online (Sandbox Code Playgroud)


Ras*_*n L 1

添加两个观察者

NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardVisible:", name: UIKeyboardDidShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardHidden:", name: UIKeyboardDidHideNotification, object: nil)

func keyboardVisible(notif: NSNotification) {
    print("keyboardVisible")
}

func keyboardHidden(notif: NSNotification) {
    print("keyboardHidden")
}
Run Code Online (Sandbox Code Playgroud)

每当键盘可见时keyboardVisible都会调用,每当键盘隐藏时keyboardHidden都会调用。

  • 这是我的代码覆盖 `func setUp() { super.setUp() NSNotificationCenter.defaultCenter().addObserver(self, 选择器: "keyboardDidShow", name: UIKeyboardDidShowNotification, object: XCUIApplication()) }` (2认同)