【问题标题】:How do I change the UITextField so it looks like the Search Text Field?如何更改 UITextField 使其看起来像搜索文本字段?
【发布时间】:2009-12-28 05:37:34
【问题描述】:

我想更改标准的 iPhone UITextField,使其看起来与 UISearchBar 中的搜索文本字段完全相同。您可以在 iPhone Messages 应用程序中看到 SMS 文本输入字段的示例。

我不认为 UITextField 具有可以满足此要求的样式属性。有什么想法吗?

【问题讨论】:

    标签: iphone cocoa-touch iphone-sdk-3.0 uitextfield


    【解决方案1】:

    如果您愿意,您实际上可以从 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 像素。

    【讨论】:

      【解决方案2】:

      UITextBorderStyleRoundedRect 呢?

      textField.borderStyle = UITextBorderStyleRoundedRect;
      

      您也可以只使用 UISearchBar 并自己手动处理文本。

      【讨论】:

      • UITextBorderStyleRoundedRect 不会像 SearchBar TextField 那样出现圆角。
      • 在这种情况下,您仍然可以使用 UISearchBar,它的行为非常类似于 UITextField,并以您希望的任何方式处理文本输入。
      【解决方案3】:

      iPhone OS 3.0 似乎不支持此功能。我只是使用了一个透明的 UITextField 和 UIImageView 作为背景。我相信这就是官方 iPhone SMS 文本输入的工作方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-03
        • 2017-12-08
        • 2010-12-31
        • 1970-01-01
        • 2016-04-19
        相关资源
        最近更新 更多