代码之家  ›  专栏  ›  技术社区  ›  mrueg

未调用UITextField上的DrawTextInRect

  •  9
  • mrueg  · 技术社区  · 16 年前

    我正在尝试实现对 this SO question . 问题是: -[drawTextInRect] 显然没有被召唤,把影子 -[drawRect] 不会使uitextfield的文本隐藏。

    另一个奇怪的事情是即使我的子类实现 -[绘图文本输入] -[绘图] 完全为空(甚至不是对super的调用),将绘制文本字段的文本。

    5 回复  |  直到 13 年前
        1
  •  12
  •   henning77    16 年前

    这是一个错误 UITextField API文档。文档显示覆盖 drawTextInRect: 可用于自定义行为。事实并非如此。

    事实上, 绘制文本: 永远不会在 输入框 ( drawPlaceholderInRect: 顺便说一下,我也不会打电话的。

    也见 http://discussions.apple.com/thread.jspa?threadID=1727596 .

    重写上的方法 UILabel 尽管如此。

        2
  •  4
  •   cescofry    13 年前

    我想你要找的方法是:

    - (CGRect)textRectForBounds:(CGRect)bounds
    

    或者可能

    - (CGRect)editingRectForBounds:(CGRect)bounds
    
        3
  •  2
  •   PKCLsoft    14 年前

    我注意到,当uitextfield失去焦点时,调用一次-[drawtextinect]。不是我想要的。

        4
  •  0
  •   greg    16 年前

    UITextField不响应 - drawTextInRect: 消息。您引用的页面上的代码子类 UILabel 不是一个 UITextField 这就是为什么它不适合你。

        5
  •  -1
  •   Corey Floyd    16 年前

    如果不调用super,编译器可能会在优化代码的过程中删除该方法。这实际上意味着将调用uilabel的实现。


    更新: 如果使用NIB创建文本字段,请确保已将NIB中文本字段的类设置为自定义子类,否则将不会调用自定义代码。