动态类型通知未被触发

时间:2014-06-06 20:43:56

标签: ios swift accessibility textkit

我目前正在使用Swift进行开发,并且遇到动态类型问题。我已经设置了这段代码

import Foundation
import UIKit

class ExerciseController :UIViewController, UITableViewDataSource, UITableViewDelegate {

  @IBOutlet var exerciseTableView :UITableView

  override func viewDidLoad() {
    super.viewDidLoad()
  }

  override func viewWillAppear(animated: Bool)  {
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "reload", name: UIContentSizeCategoryDidChangeNotification, object: nil)
  }

  override func viewWillDisappear(animated: Bool) {
    NSNotificationCenter.defaultCenter().removeObserver(self, name: UIContentSizeCategoryDidChangeNotification, object: nil)
  }

  func reload() {
    println("reload")
  }

  func numberOfSectionsInTableView(tableView: UITableView!) -> Int {
    return 1
  }

  func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
    return 1
  }

  func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
    let cellIdentifier = "ExerciseCell"
    var cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? UITableViewCell
    if !cell {
      cell = UITableViewCell(style: .Default, reuseIdentifier: cellIdentifier)
    }
    cell!.textLabel.text = "Hello"
    cell!.textLabel.font = UIFont.preferredFontForTextStyle(UIFontTextStyleHeadline)
    return cell
  }
}

我运行我的应用程序,然后转到“设置”应用程序以修改文本大小,但通知选择器未被调用且不知道原因。在此先感谢您解决此问题,所有帮助表示赞赏

*以前通知观察员在viewDidiLoad和deinit上设置但是它既不起作用

更新#1

我尝试使用键盘通知做同样的事情,但确实有效。这意味着应用程序无法识别文本大小何时更改

1 个答案:

答案 0 :(得分:6)

编辑1 Apple已承认我的错误报告,并将其与其他错误报告合并。


我做了一些测试,发现这个问题/错误只在iOS 8模拟器和UIContentSizeCategoryDidChangeNotification中流行。其他通知按预期工作,UIContentSizeCategoryDidChangeNotification在iOS 7模拟器中的行为与预期相同。我已经提交了雷达的错误报告。希望这可以澄清在不久的将来有这个问题的人。

编辑2

现在似乎已经修复了。此外,来自Big Nerd Ranch的this library确实简化了设置动态类型的整个过程。