Xcode6-Beta3 更新后,无法使用 Swift 访问键盘信息

Posted

技术标签:

【中文标题】Xcode6-Beta3 更新后,无法使用 Swift 访问键盘信息【英文标题】:After Xcode6-Beta3 update, cannot access keyboard information using Swift 【发布时间】:2014-07-08 23:45:07 【问题描述】:

在 xcode6-beta3 更新之前,我能够通过键盘通知访问键盘的框架 (CGRect)。但是现在我尝试获得的每个值都是“nil”

通知码

notificationCenter.addObserver(self, selector: "keyboardWillAppear:", name: UIKeyboardWillShowNotification, object: nil)

keyboardWillAppear功能码

func keyboardWillAppear(notification: NSNotification)
    var keyboardSize = notification.userInfo[UIKeyboardFrameBeginUserInfoKey]!.frame.size.height
    println(keyboardSize)

我尝试打印的任何值都为零:

tried: .frame
       .size.height
       .size 

任何指针(指针,哈哈)或帮助将不胜感激

【问题讨论】:

【参考方案1】:

您的代码调整如下:

func shrinkTextView (ncMessage: NSNotification) 

 var keyboardSize: AnyObject? = ncMessage.userInfo[UIKeyboardFrameBeginUserInfoKey]
 println("\(keyboardSize?)")

 

...打印

可选(NSRect: 0, 568, 320, 216)

您是否正确添加了观察者?我试过这样:

 NSNotificationCenter.defaultCenter().addObserver(
 self, selector: "shrinkTextView:",
 name: "UIKeyboardWillShowNotification", object: nil)

【讨论】:

啊,看来我错过了我的 defaultCenter() 电话...这可能很重要,明天我确认一下并点击它已回答,谢谢您的回复

以上是关于Xcode6-Beta3 更新后,无法使用 Swift 访问键盘信息的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 GNU-Emacs 在 SWI-Prolog 上编辑“Prolog 程序名称”(尝试设置劣质 Prolog 进程)

xcode6-beta下载

在 SWI-Prolog 中,在 OWL 本体上执行 SPARQL 查询

如何在 SWI-Prolog 上设置闹钟?

错误域= NSURLErrorDomain代码= -1005“网络连接丢失。”

在 SWI Prolog 中使用 process_create/3 使用命令提示符或 shell 时出错