【发布时间】:2009-12-28 05:37:34
【问题描述】:
我想更改标准的 iPhone UITextField,使其看起来与 UISearchBar 中的搜索文本字段完全相同。您可以在 iPhone Messages 应用程序中看到 SMS 文本输入字段的示例。
我不认为 UITextField 具有可以满足此要求的样式属性。有什么想法吗?
【问题讨论】:
标签: iphone cocoa-touch iphone-sdk-3.0 uitextfield
我想更改标准的 iPhone UITextField,使其看起来与 UISearchBar 中的搜索文本字段完全相同。您可以在 iPhone Messages 应用程序中看到 SMS 文本输入字段的示例。
我不认为 UITextField 具有可以满足此要求的样式属性。有什么想法吗?
【问题讨论】:
标签: iphone cocoa-touch iphone-sdk-3.0 uitextfield
如果您愿意,您实际上可以从 uisearch 栏中提取背景图像,并将其设为可拉伸图像以用作 UITextField 的背景。我做了同样的事情,它对我来说就像一个魅力。这是我用来提取它的代码:
UIImage *img = [[[self.searchBar subviews] objectAtIndex:1] background];
NSData *imgdata = UIImagePNGRepresentation(img);
NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectoryPath = [searchPaths objectAtIndex: 0];
[imgdata writeToFile:[documentsDirectoryPath stringByAppendingPathComponent:@"searchbarbg.png"] atomically:YES];
uisearchbar 的第二个子视图是实际的文本字段;不过,这可能会在任何未来的操作系统版本中发生变化。
这会将 PNG 保存到应用程序的文档目录中,您可以在其中抓取它并将其拖放到您的项目中,并将其用作文本字段的背景。可拉伸图像的左侧和顶盖宽度为 15 像素。
【讨论】:
UITextBorderStyleRoundedRect 呢?
textField.borderStyle = UITextBorderStyleRoundedRect;
您也可以只使用 UISearchBar 并自己手动处理文本。
【讨论】:
iPhone OS 3.0 似乎不支持此功能。我只是使用了一个透明的 UITextField 和 UIImageView 作为背景。我相信这就是官方 iPhone SMS 文本输入的工作方式。
【讨论】: