带有操作的文本字段在 iPad 上不起作用
Posted
技术标签:
【中文标题】带有操作的文本字段在 iPad 上不起作用【英文标题】:Text Field with an Action not working on iPad 【发布时间】:2012-08-15 04:29:43 【问题描述】:我在我的文本字段中创建了一个按钮并调用了我的bookMarks
方法。这适用于iphone。如果我在工具栏中创建一个按钮并调用此方法,仍然可以正常工作。它只是在我的文本字段中不起作用。有没有办法解决这个问题?谢谢..
[bookMarkButton addTarget:self action:@selector(bookMarks:) forControlEvents:UIControlEventTouchUpInside];
locationField.leftView = bookMarkButton;
书签方法
- (void)bookMarks:(id)button
if (self.bookmarkPopoverController.popoverVisible)
[self.bookmarkPopoverController dismissPopoverAnimated:YES];
self.bookmarkPopoverController = nil;
else
ViewBookmarkViewController * viewBookmarkViewController = [[[ViewBookmarkViewController alloc] initWithStyle:UITableViewStyleGrouped] autorelease];
viewBookmarkViewController.delegate = self;
[viewBookmarkViewController setBookmark:[webView stringByEvaluatingjavascriptFromString:@"document.title"]
url:self.url];
UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:viewBookmarkViewController] autorelease];
navController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
self.bookmarkPopoverController = [[[UIPopoverController alloc] initWithContentViewController:navController] autorelease];
[self.bookmarkPopoverController presentPopoverFromBarButtonItem:button
permittedArrowDirections:UIPopoverArrowDirectionDown|UIPopoverArrowDirectionUp
animated:YES];
else
[self presentModalViewController:navController animated:YES];
【问题讨论】:
你是否放了断点或NSLog语句来查看你的UI_USER_INTERFACE_IDIOM()
条件子句是否被调用?
是的..它在self.bookmarkPopoverController presentPopoverFromBarButtonItem:
之后崩溃
我认为包含“它不起作用”或“它崩溃”的问题应该被销毁以摆脱他们的痛苦。你会告诉你的机械师“我的车坏了……为什么?”?不!
如果你不知道答案,你不必写东西..如果我知道它为什么不起作用,我会修复它..
您不必知道为什么,但至少要提供一些信息...*它是如何*崩溃的?错误信息?不要只说“这块代码行不通”
【参考方案1】:
为什么不为 textField 添加 ControlEvent:
[yourTextField addTarget:self action:@selector(bookMarks:) forControlEvents:UIControlEventTouchUpInside];
编辑:要区分按钮,请将标记 0 和 1 分别添加到两个按钮;
现在你的方法是:
- (void)bookMarks:(id)sender
if([sender isKindOfClass:[UIButton class]])
UIButton *curBtn = (UIButton *)sender
if([curBtn tag] == 0)
// any action for button 1
else if([curBtn tag] == 1)
//refresh uiWebView
else
//your code
//present your popover for ipad
[[self.bookmarkPopoverController presentPopoverFromRect:yourtextFeild.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown|UIPopoverArrowDirectionUp animated:YES];
【讨论】:
非常感谢.. 运行良好.. 只是一个问题.. 我的文本字段中有 2 个按钮.. 正确的一个用于刷新 UIWebView.. 如果我使用上面的代码,刷新按钮将作为书签按钮工作。如何区分按钮?以上是关于带有操作的文本字段在 iPad 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
带有 javascript 值的组合框在 iPad 上不起作用
CSS 跨浏览器问题 - 旋转在 Safari、Ipad 和 Iphone 上不起作用