Nstextfield에서 옵션 엔터 라인 브레이크를 비활성화 하시겠습니까?
-
06-09-2019 - |
해결책
nsformatter의 서브 클래스를 생성하고 iSpartialStringValid를 구현할 수 있습니다.
- (BOOL)isPartialStringValid:(NSString **)partialStringPtr
proposedSelectedRange:(NSRangePointer)proposedSelRangePtr
originalString:(NSString *)origString
originalSelectedRange:(NSRange)origSelRange
errorDescription:(NSString **)error
{
// the user may have:
// -- deleted the left most character
// -- deleted the last character and we have an empty string
// both cases are valid
if (proposedSelRangePtr->location == 0)
return YES;
unichar theChar = [*partialStringPtr characterAtIndex:proposedSelRangePtr->location - 1];
if ([[NSCharacterSet newlineCharacterSet] characterIsMember:theChar]) {
*error = nil;
NSBeep();
return NO;
}
return YES;
}
다른 팁
이 기능을 비활성화하는 이유를 물어봐도 될까요? OS의 표준 부분입니다. 사용자는 라인 브레이크가 포함 된 다른 곳에서 일부 문자열에 붙여 넣을 수 있으며 필요에 따라 편집 할 수 있습니다. 이 기능을 그대로 두는 것이 더 좋을까요? 그러나 NSFormatter를 사용하여 라인이 나온 후 모든 값을 모델에 복사 할 때 모든 것을 벗겨냅니다.
제휴하지 않습니다 StackOverflow