Reputation: 1187
How can I set an Image to a Button on Touch Bar (for new MacBook Pro)? I tried the following code, but it doesn't work, if I run the following code, no button shown up in the Touch Bar.
- (nullable NSTouchBarItem *)touchBar:(NSTouchBar *)touchBar makeItemForIdentifier:(NSTouchBarItemIdentifier)identifier
{
if ([identifier isEqualToString:TouchBarMacScanIdentifier])
{
NSButton* theButton = [NSButton buttonWithTitle:@"Scan" target:self action:@selector(clickFullScan:)];
[theButton setImage:[NSImage imageNamed:@“scan.png”]];
[theButton setImagePosition:NSImageLeft];
NSCustomTouchBarItem *customItemForButton =
[[NSCustomTouchBarItem alloc] initWithIdentifier:TouchBarMacScanIdentifier];
customItemForButton.view = theButton;
customItemForButton.visibilityPriority = NSTouchBarItemPriorityLow;
return customItemForButton;
}
...
return nil;
}
If I comment out the following two lines, I can see the button shown up in the Touch Bar.
[theButton setImage:[NSImage imageNamed:@“scan.png”]];
[theButton setImagePosition:NSImageLeft];
So what's wrong? how can I set an Image to the Button on Touch Bar??
Upvotes: 5
Views: 1376
Reputation: 403
It looks like your image width is too big. Even when the image is downscaled for you to show whole image inside of the button, the button width is set to be equal to your original image width.
1024x1024: No Button - since the free size of touch bar is not big enough for your button to display
Upvotes: 4