【问题标题】:No keyboard when presenting Game Center Modal view controller in landscape in Spritekit在 Spritekit 中以横向显示 Game Center 模态视图控制器时没有键盘
【发布时间】:2014-08-26 10:21:39
【问题描述】:

我的应用正在运行 Spritekit,并且仅针对横向方向设计,我终其一生都无法弄清楚为什么当我在 Game Center 中显示用于验证玩家身份的模式视图时,键盘不见了。

这是我目前的代码。

class GameViewController: UIViewController, ADBannerViewDelegate, GKGameCenterControllerDelegate {
var gameCenterEnabled: Bool = false
var initialized: Bool = false
let leaderBoardIdentifier: String = "squareBeatLeaderboard"
@IBOutlet var bannerView: ADBannerView!

override func viewWillLayoutSubviews()  {
    super.viewWillLayoutSubviews()
    // Configure the view.
    if initialized == false {
        let skView = self.originalContentView as SKView
        let scene = GameScene.sceneWithSize(CGSize(width: self.originalContentView.frame.size.width, height: self.originalContentView.frame.size.height))
        skView.ignoresSiblingOrder = true
        scene.scaleMode = SKSceneScaleMode.ResizeFill

        self.authenticateLocalPlayer()

        skView.presentScene(scene)
        initialized = true
    }
}

func authenticateLocalPlayer() {
    let localPlayer = GKLocalPlayer()
    localPlayer.authenticateHandler = {(viewController: UIViewController!, error: NSError!) -> Void in
        // handle authentication
        if let viewController = viewController {
            self.presentViewController(viewController, animated: true, completion: nil)
            //keyboard
            NSLog("log the user in") // why the hell is there no keyboard
        } else {
            if GKLocalPlayer().authenticated == true {
                self.gameCenterEnabled = true
            } else {
                self.gameCenterEnabled = false
            }
        }
    }
}

“初始化”布尔值是为了确保在我的 iAd 刷新时不会再次加载设置。

当出现 Game Center 登录视图时,它看起来一切正常,只是键盘位置不正确。在 iPhone 4S 模拟器中,会发生以下情况: http://i.imgur.com/TJjfYq2.png

【问题讨论】:

  • 你是否在代码中设置了方向?

标签: ios iphone keyboard swift gamekit


【解决方案1】:

这看起来像一个旋转错误。就像键盘从纵向显示坐标一样,但视图是横向的。如果您的应用程序在 info.plist 文件中设置为仅在横向上,那么您必须以某种方式覆盖它。如果它没有在那里设置,那么我会锁定它,除非你需要纵向。

当您有混合方向但视图显示不正确时,通过设置方向掩码强制视图为横向模式:

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/#//apple_ref/c/tdef/UIInterfaceOrientationMask

教程在这里:

http://makeapppie.com/tag/uiinterfaceorientationmask/

可以在下面的 Ray Wenderlich 教程中找到其他代码示例。下载启动项目:

http://www.raywenderlich.com/82022/create-game-like-cut-the-rope-using-sprite-kit-swift

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多