【问题标题】:Method UIToolbar.setItems doesn't work on iOS 6方法 UIToolbar.setItems 在 iOS 6 上不起作用
【发布时间】:2012-09-27 13:32:11
【问题描述】:

我有以下代码在 iOS 5.1 上运行良好,可以替换工具栏上的按钮:

[(UIToolbar*)toolbar setItems:itemsArray]; 

但编译后的应用程序在 iOS 6 上无法运行。我使用 xXode 4.5 编译了支持 iOS 6 的源代码,但错误是一样的:

2012-09-27 16:31:13.537 Linux[2633:907] -[UIWebFormAccessory setItems:]: unrecognized selector sent to instance 0x1d886ad0
2012-09-27 16:31:13.540 Linux[2633:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIWebFormAccessory setItems:]: unrecognized selector sent to instance 0x1d886ad0'
*** First throw call stack:
(0x361032a3 0x3441397f 0x36106e07 0x36105531 0x3605cf68 0x775c5 0x33bbda6f 0x360d85df 0x360d8291 0x360d6f01 0x36049ebd 0x36049d49 0x365862eb 0x37428301 0x7538d 0x75328)
libc++abi.dylib: terminate called throwing an exception
(lldb) 

如何解决这个问题?

相关问题:How to replace buttons on a toolbar under UIWebView keyboard on iOS 6?

非常感谢您的帮助!

【问题讨论】:

    标签: iphone ipad button toolbar ios6


    【解决方案1】:

    即使它是UIToolbar,它可能不再是,你显然试图调用一个不存在的方法(或“发送消息”)。解决方案是不要这样做,因为一旦您足够努力,该方法就不会凭空出现。

    可能存在另一种方法来继续执行您正在尝试执行的操作,方法是在此未记录类型上找到另一种拟合方法。然而,也许有一天它也会像刚刚破裂的那样破裂。如果他们没有记录某些内容,是的,这意味着您仍然可以使用它(至少在您将其发送以供审查之前),但这也意味着它可能随时损坏。

    一个长期的解决方案是找到一种方法来调出您自己可以控制的界面。知道你想在哪里集成,我认为这并不容易。我想我几天前在 Stack Overflow 上看到了另一个关于此的问题,说要检测触摸,停止编辑并自己接管 UI(尽管它在光标定位、复制/粘贴菜单等方面并不能很好地发挥作用) .

    无论哪种方式,您都必须设计一个不那么脆弱的新解决方案。

    【讨论】:

    • 是的,在 iOS6 上它不再是 UIToolbar。
    【解决方案2】:

    UIWebFormAccessory 不是 iOS6 上的 UIToolbar。如果您想弄乱表单附件工具栏,请查看相关问题的“findVirginWebKeyboardToolbar”答案:https://stackoverflow.com/a/12865353/199267

    【讨论】:

      【解决方案3】:

      您确定在这种特定情况下的工具栏实际上是 UIToolbar 吗?我猜这是选角问题。

      我在我的一堂课中做了以下事情,它在 iOS6 中绝对有效

      NSMutableArray *items = [NSMutableArray arrayWithArray: self.topToolbar.items];
      [items insertObject:barButtonItem
                  atIndex:0];
      self.topToolbar.items = items;
      

      【讨论】:

      • 它是UIWebFormAccessory - UIWebView 键盘下的工具栏。
      • 啊,不知何故错过了你原来的帖子,我的错。似乎那是一个有点无证的类(搜索时点击次数少于 300);并不是说这有帮助,但我猜你并不是真的应该使用它。
      • 我只想替换 UIWebView 工具栏上未使用的按钮...请看stackoverflow.com/questions/12622931/…
      猜你喜欢
      • 1970-01-01
      • 2015-01-22
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多