【问题标题】:UITextView changes position when all text selectedUITextView 在选择所有文本时更改位置
【发布时间】:2015-08-20 22:16:34
【问题描述】:

我创建了一个跟随键盘的UITextView 的子类(就像在聊天应用程序中一样)。我将UITextView 定位在界面构建器中的一个随机位置,并在代码中初始化它的位置。一切实际上都运行良好,除了当我选择视图中的所有文本时,它会回到界面构建器中的原始随机位置。我正在 iOS 模拟器中测试我的应用程序。这是我的代码:

class MessageTextView : UITextView
{
    override func awakeFromNib()
    {
        super.awakeFromNib()
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardStateChanged:", name: UIKeyboardDidShowNotification, object: nil)

        NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardDidHide:", name: UIKeyboardDidHideNotification, object: nil)

        NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardDidHide:", name: UIKeyboardDidChangeFrameNotification, object: nil)

        backgroundColor = UIColor.greenColor()

    }

    func keyboardFrameChanged(notification : NSNotification)
    {
        println("Keyboard frame changed")
        let rect = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey]?.CGRectValue())!
        frame = CGRect(x: rect.minX, y: rect.minY - 100, width: rect.maxX, height: 100)
    }

    func keyboardDidHide(notification : NSNotification?)
    {
        println("Keyboard hided")
        let size = UIScreen.mainScreen().bounds;
        frame = CGRect(x: 0, y: size.height - 100, width: size.width, height: 100)
    }

    func keyboardStateChanged(notification : NSNotification)
    {
        println("Keyboard showed")
        let rect = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey]?.CGRectValue())!
        frame = CGRect(x: rect.minX, y: rect.minY - 100, width: rect.maxX, height: 100)

    }
}

为什么我会遇到这个问题,我该如何解决?还是只是 iOS 或 iOS 模拟器中的错误?

【问题讨论】:

  • 您是否在情节提要中使用了自动布局(如果您没有明确将其关闭的话)?
  • @rdelmar 我关闭了自动布局并开始工作。非常感谢。
  • 尝试删除keyboardFrameChanged 我不认为你真的需要它,也许它由于某种原因被调用并重置文本视图的位置

标签: ios swift cocoa-touch uiview ios-simulator


【解决方案1】:

正如@rdelmar 建议的那样,只需在情节提要中关闭自动布局即可解决问题。

【讨论】:

    猜你喜欢
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 2021-12-21
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    相关资源
    最近更新 更多