簡體   English   中英

選擇所有文本后,UITextView會更改位置

[英]UITextView changes position when all text selected

我創建了跟隨鍵盤的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所建議的那樣,只需在情節提要中關閉自動布局即可解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM