如何避免uitextfield旁边的点

时间:2010-07-20 05:44:49

标签: iphone iphone-sdk-3.0 uitextfield

当文本大于uitextfield的宽度时,是否可以删除uitextfield旁边显示的点。

4 个答案:

答案 0 :(得分:1)

如果您在代码

之后进行键盘可见调用,则可以

[self.yourTextField becomeFirstResponder];

然后从左侧剪切较大的文字。

您还可以使用以下代码隐藏键盘[如果您使用任何自定义键盘]

// Hide keyboard for Dial Pad, but show blinking cursor
UIView *dummyKeyboardView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
yourTextField.inputView = dummyKeyboardView;
[dummyKeyboardView release];

答案 1 :(得分:0)

我尝试了很多方法,最后我开始关注解决方案。

UITextField没有lineBreakMode属性,因此只需覆盖UITextField中的以下方法:

-(CGRect)textRectForBounds:(CGRect)bounds{

    CGRect rect = bounds;
    rect.size.width = rect.size.width;
    return rect;
}

注意:我不知道如何,但它有效。

答案 2 :(得分:0)

非常老的问题,但是由于我试图制作一个非常紧凑的仪表板,所以我需要一个答案,因此必须非常优化文本大小,并且最新的iOS版本使用{{1}可以使文本不必要地变小}(不确定哪个版本对此进行了更改,iOS 9使其文本适合边缘,iOS 13留出了很多空间)。 显然grant_type=client_credentials是没有用的。我最终要做的是给文本矩形增加一些额外的像素宽度:

adjustsFontSizeToFitWidth = YES

以上内容将在每侧额外增加4个像素,因为在我的情况下,我居中放置的文本有时可能不完全适合水平-请根据需要调整返回的矩形。但是通常,这样一来,您可以保留lineBreakMode,并选择“危险地接近”限制的字体大小,而不会得到那些可怕的点。您的透支额是否会被切除等取决于您。

答案 3 :(得分:-3)

有一个属性lineBreakMode,用于定义要显示的文本大于控件框的行为

//UILineBreakMode
//Options for wrapping and truncating text.

typedef enum {
 UILineBreakModeWordWrap = 0,
 UILineBreakModeCharacterWrap,
 UILineBreakModeClip,
 UILineBreakModeHeadTruncation,
 UILineBreakModeTailTruncation,
 UILineBreakModeMiddleTruncation,
} UILineBreakMode;

如果您不想要任何点,可以使用 UILineBreakModeClip ,它只会在最后剪切文本。苹果医生说:

  

到达绘图矩形的末尾时剪切文本。此选项可能会在字符串末尾生成部分呈现的字符。   适用于iPhone OS 2.0及更高版本。

虽然它当然取决于您希望如何显示文本。由于无论哪种方式都无法显示所有文本,因此这些点通常比原始断点更具震撼性。

如果您要求绝对所有文字都可见,则必须展开字段的宽度 height (并使用 UILineBreakModeCharacterWrap ),或者可能减小字体大小(作为最后的手段)。

对该主题进行快速谷歌搜索,结果显示How to make UILabel / UITableViewCell to have a dynamic height