0

指定された長さの文字のみを格納できる nsstring オブジェクトが必要です。

それを超える場合は、左から切り捨てられる必要があります。たとえば、長さを 5 に設定し、値を Ileana として入力すると、leana が保存されます。

nsstring でカテゴリを作成してみましたが、アイデアがありません:

-(void)setMaximumLength:(NSInteger)length;{
    if ([self length]>length) {
        NSLog(@"exxed");
    }

}

どうすればいいですか?文字列のサイズを監視する必要があることを念頭に置いていますが、カテゴリでどのように行うか、どの通知が呼び出されるのでしょうか?

4

2 に答える 2

4

これは、一般的に文字列に課したい実際の制約ではなく、表示やユーザー入力の処理などのフォーマットのように疑わしく聞こえます。その場合は、NSFormatter クラスまたは特定のコントローラー プロパティ セッターのコードを少し使用することをお勧めします。

しかし、これを本当に文字列自体に適用したい場合は、stringByTruncatingToLength:NSString のようなメソッドを提供するか、どこでも NSMutableString を使用するように切り替える必要がありますsetMaximumLength:

于 2013-03-03T19:21:59.760 に答える
2

切り捨てのメカニズムは、次のように実装できます:(カスタム クラスの NSString プロパティの場合)

-(void)setName:(NSString*)newName
{
  if([newName length]> maxLength)
{
   newName = [newName substringWithRange:NSMakeRange([newName length] - maxLength, maxLength];
}
   _name = newName;
}
于 2013-03-03T19:16:27.787 に答える