将 UITextField 增加到一定长度

2024-02-01

我有一个 UITextField,我想“自动”调整其边界大小,以便为字段中添加的字符串腾出空间。但是,我希望它的宽度达到一定程度的最大值。我可以采取的最佳方法是什么?

谢谢你的帮助。

EDIT:

测试视图.h

#import <UIKit/UIKit.h>


@interface TestingView : UIView <UITextFieldDelegate> {

}

@end

测试视图.m

#import "TestingView.h"


@implementation TestingView

- (void)awakeFromNib
{
    CGRect testingBounds = self.bounds;

    testingBounds.size.width = testingBounds.size.width - 20;

    testingBounds.size.height = 30;

    CGPoint testingCenter = self.center;

    testingCenter.y = testingCenter.y - 75;

    UITextField *testingField = [[UITextField alloc] initWithFrame:testingBounds];

    testingField.center = testingCenter;

    testingField.delegate = self;

    testingField.placeholder = @"Testing";

    [self addSubview:testingField];
}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    int yourMaxWidth = 150;

    float width = [textField.text sizeWithFont:
                   [UIFont systemFontOfSize: 14]  
                                 constrainedToSize:
                   CGSizeMake(yourMaxWidth, textField.bounds.size.height)].width;

    textField.bounds = CGRectMake(textField.bounds.origin.x,
                                      textField.bounds.origin.y,
                                      width, 
                                      textField.bounds.size.height);

    return YES;
}
@end

在委托方法中文本字段:shouldChangeCharactersInRange:替换字符串: http://developer.apple.com/iphone/library/documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html#//apple_ref/occ/intfm/UITextFieldDelegate/textField:shouldChangeCharactersInRange:replacementString:你应该测量你的UITextField的文本大小使用sizeWithFont:constrainedToSize: http://developer.apple.com/iphone/library/documentation/UIKit/Reference/NSString_UIKit_Additions/Reference/Reference.html#//apple_ref/occ/instm/NSString/sizeWithFont:constrainedToSize:并使用返回的CGSize的宽度参数来设置你的UITextField的边界宽度。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    float width = [yourTextField.text sizeWithFont:
           [UIFont systemFontOfSize: 14]  
                                      constrainedToSize:
           CGSizeMake(yourMaxWidth, yourTextField.bounds.size.height)].width;

    yourTextField.bounds = CGRectMake(yourTextField.bounds.origin.x,
                                      yourTextField.bounds.origin.y,
                                      width, 
                                      yourTextField.bounds.size.height);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 UITextField 增加到一定长度 的相关文章

  • 在 Objective-C 中做事的正确位置

    我开始尝试使用 ObjectiveFlickr 框架 目标是创建一个相对简单的 iPhone 地图应用程序 显示当前 MKMapView 区域内带地理标记的 flickr 内容 我遇到了与线程相关的问题before https stacko
  • Xcode 4 自动完成错误

    您是否还面临 Xcode 4 自动完成功能的问题 该功能过去在 3 x x 版本上运行良好 我已经在 Prefix 中导入了一些类 但 Xcode 不想帮助我输入代码 我必须手动添加上面的 implementation 导入 myclass
  • 如何对其中包含自定义对象的 NSMutableArray 进行排序?

    我想做的事情看起来很简单 但我在网上找不到任何答案 我有一个NSMutableArray对象 假设它们是 Person 对象 我想排序NSMutableArray通过 Person birthDate 这是一个NSDate 我认为这与这个方
  • 连续调用startRecordingToOutputFileURL:

    苹果文档 https web archive org web 20140814091047 http developer apple com library ios DOCUMENTATION AVFoundation Reference
  • 我是否可以通过第三方支付网关为我的 iPhone 应用程序提供付款服务?

    所以我有一个 RESTful Api 服务 它有免费和付费的东西 任何人都可以利用我们的 API 创建 iPhone Andriod MSPhone 应用程序 不好的类比 假设我们正在为 Steam 创建一个聊天 api 服务 并且您可以为
  • 以编程方式从 uiwebview 获取选定元素?

    目前我正在服用这个示例网站 http www fusioncharts com demos business management dashboard view Default asp并显示在我的网络视图中 网页显示正确 现在我试图弄清楚用
  • 文本末尾的空格在右对齐 UITextField 中不可见

    我有一个右对齐的UITextField 最初编辑时 文本末尾不会出现空格 我用这个解决了this https stackoverflow com q 19569688 1971013 替换 与不间断的 u00a0 然而 上面仅在编辑文本字段
  • 如何“旋转”图层/视图(例如,就像在 enigmo 中一样)

    我知道如何根据触摸移动图层 但我也希望能够旋转图像 是否有任何示例代码显示如何执行此操作 或者有人可以给我一些建议吗 Thanks 最简单的方法是使用图层的变换属性 float angle M PI rotate 180 or 1 radi
  • iPhone 6 隐藏在键盘下方的自动校正

    自动修正UITextview在 Iphone5s 中工作正常 但在 iPhone 6 中它被隐藏在键盘后面 在 iPhone 5s 中按预期工作 但不适用于 iphone 6 有什么办法可以解决 iPhone 6 上的这个问题吗 不 去物业
  • 左右并排放置两个 UILabels,而不知道左标签中文本的字符串长度

    在 iPhone fb 应用程序的照片选项卡中 对于每个表格视图单元格 他们都会放置相册标题 后跟相册中的图片数量 例如 第一张专辑 22 最后也是最后的 12 我认为有两个标签 一个用于标题 一个用于数字 因为数字实际上是不同的 UICo
  • iPhone - cancelPerformSelectorWithTarget 不起作用

    如果我在 UIView 的子类中执行此操作 self performSelector selector doSomething withObject nil afterDelay 5 然后像这样取消它 我已经尝试了两个版本 NSRunLoo
  • 有没有任何工具可以将 PVR 纹理分割成一组图块?

    我有一张大的 png 纹理 4096x4096 我需要将其部分加载到内存中 我已经将大 png 纹理分割成 16 个 1024x1024 块 然后将它们转换为 PVR 压缩文件 问题是 当我绘制这些图块时 图块之间的边缘与 png 的边缘不
  • 确定第三方应用程序在 iPhone 上播放的歌曲

    我正在尝试确定 iPhone 上当前正在播放的歌曲的标题 我知道如果本机 Apple 应用程序正在播放音乐 我可以使用以下代码来找出正在播放的内容 但如果从 Spotify 或其他音乐播放应用程序播放歌曲 我如何找到歌曲的标题 MPMedi
  • UI键盘回避和自动布局

    鉴于 iOS 6 中对自动布局的关注以及 Apple 工程师的推荐 查看 WWDC 2012 视频 我们不再直接操作视图的框架 那么如何仅使用自动布局和 NSLayoutConstraint 来避免键盘呢 Update 这看起来是一个合理的
  • 如何发布和接收 NSNotifications(目标 C) |通知(Swift 中)?

    是否有一种易于理解的模式如何发送 NSNotification 目标 C 通知 Swift 中 以及如何接收通知 代码片段 文档关于这个主题写了大约 150 页 想看一个简单的例子 发送通知 NSNotificationCenter def
  • 为什么我的 x 轴在 iPhone 上不显示核心图?

    编辑 我认为我的问题更好地表述为 我怎样才能有一个不从零开始的 Y 轴 看起来 x 轴总是放置在 y 0 处 但我希望 x 轴位于 y 轴上的某个正数 这是一张包含更多常规数据的图表 我只是希望将 x 轴放置在绘图的最小 y 值 大约 77
  • 如何在 iOS 中通过 3G 连接创建无线热点

    如果我愿意 我将如何创建一个像这样的应用程序MyWi http intelliborn com mywi html 即 WiFi 网络共享应用程序 实现该功能需要哪些步骤 我需要使用哪些框架 库 我们的目标不是尝试将此应用程序放入应用程序商
  • 这是 NSDateFormatter 风格 12 月 18 日星期五

    我想知道这个日期格式是什么Friday December 18th这也是标准的日期格式 或者我必须付出一些努力才能得到这个 Thanks 我不认为th可以通过格式化程序来实现 虽然你可以这样做 NSDate today NSDate dat
  • iOS 上读取证书问题

    我正在尝试从 iOS 中的各种 URL 读取证书 然而 我的代码运行不佳 应该返回我需要的信息的数组总是返回null 我缺少什么 void findCertificate NSString url NSInputStream input N
  • NSFetchedResultsController 中的部分名称与托管对象值不匹配

    我正在使用 NSFetchedResultsController 用大约 1500 个实体的中等大小的核心数据存储的结果填充 UITableView 结果控制器相当标准 一些潜在错误的 热点 并不适合此设置 在与其使用的同一 主 线程上创建

随机推荐