전환이 내가 코드의 위 peiece으로NSMenuItem가 굵은 글꼴 스타일
@implementation NSMenuItem (Font)
-(void)setBoldStyle:(bool)bBold{
NSString* title = [self title] ;
NSFont *pFont = (bold)?[NSFont boldSystemFontOfSize:14]:[NSFont menuFontOfSize:12];
NSDictionary* fontAttribute = [NSDictionary dictionaryWithObjectsAndKeys:
pFont, NSFontAttributeName,
nil] ;
NSMutableAttributedString* newTitle = [[NSMutableAttributedString alloc] initWithString:title
attributes:fontAttribute] ;
[self setAttributedTitle:newTitle] ;
[newTitle release] ;
}
@end
, 한 일이다, 나는를 설정할 수 있어요 특정 NSMenuItem이 선택되면 굵은 글씨로 표시됩니다. 토글해야합니다 (이전에 항목이 굵게 표시 되었다면 이제는 정상적인 의미입니다). 그런 다음 해당 사항이 없습니다.
이것은 내가 부르는 방식입니다 ,
// have we selected any menuitem yet
if (prevStatusIndex >0){
// then deselect it
pTempMenuItem = [pMenu itemAtIndex:prevStatusIndex];
[pTempMenuItem setBoldStyle:NO];
}
prevStatusIndex = clientStatus+1;
pTempMenuItem = [pMenu itemAtIndex:prevStatusIndex]; // 1 because a separator added
[pTempMenuItem setBoldStyle:YES];
어떤 아이디어가 잘못 되었나요?
그룹에서 하나의 항목 만 선택하려는 것 같습니다. 항목을 선택하면 이전 선택을 선택 해제해야합니다. 한눈에'setBoldStyle'은 괜찮아 보이지만 두 번째 코드 블록은 충분하지 않습니다. 논리는 올바르게 보입니다. 이전 선택이 선택되어 있지 않으면 선택을 취소 한 다음 새 선택을 선택하십시오. 이전 선택이있을 때'if'가'YES'로 평가되고 있습니까? HTH – CRD
@CRD : 체크해 봤는데 :(로그를 넣으면 NSMenuItem 포인터가 올바르게 보이게됩니다. – Amitg2k12
setBoldStyle에 중단 점을 설정 했습니까? 굵은 체로 확인하십시오 (bBold가 위의 오타라고 가정합니다. 또한 인스턴스 굵은 굵게 ...), 단계를 통해 올바른 글꼴을 선택합니까? 등 – CRD