我是Objective-C的新手。我在代码中创建了一个textview,它将文本限制为25个字符。当用户想要在textview中添加超过25个字符时,它会显示一个警报视图......现在问题是,当我单击完成按钮时,它再次显示警报视图。谁能告诉我如何解决这个问题?
答案 0 :(得分:2)
首先,警报可能是程序员可以转向的最原始,非优雅,不友好的用户交互形式。你应该把警报作为绝对的最后手段。
虽然这个问题有点模糊,但听起来好像你的逻辑就是这个
while(strlen(textview) > 25)
{
// show alert
}
当然,当您显示警报时,您需要将字符串的长度截断为小于25,不是吗?否则你有一个非常无聊的游戏,叫做“点击永无止境的警报!”
一个更优雅的解决方案是显示输入的字符数,当它接近极限(例如,超过20)然后使所述显示变为红色,而不是显示警报以简单地禁止进一步输入第25个字符(除了后空间和删除课程!)
答案 1 :(得分:2)
我认为我必须同意所有以前的用户,这种类型的警告对用户来说可能非常烦人。即使你改变你不那么突兀的方式,你仍然需要验证输入。
我认为正确的方法是使用Cocoa的数据格式化功能。您可以在isPartialStringValid:newEditingString:errorDescription:找到有关它的更多信息。
正如您可以在那里阅读的那样,您可以返回NO
,并且不会追加最后插入的字符。使用控制委托控制:didFailToValidatePartialString:errorDescription:甚至可以使用Mac OS的默认行为来处理这种情况,这可能在将来发生变化。