问题描述
您可以在 UIKit 中使用 imageView.image = NSImage(named: "pencil") //result is no image
设置系统映像(SF 符号)。对于 macOS 应用程序,您可以在故事板中设置系统映像。但是,我找不到以编程方式为 macOS 设置系统映像的方法。这是否可能,或者系统图像是否仅限于 macOS 应用程序中的故事板。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int ar[100][100];
void create_mat(int a)
{
srand(time(NULL));
for (int i=0; i<a; i++)
{
printf("\n");
for (int j=0; j<a; j++)
{
ar[i][j]=rand()%16;
printf("%d\t",ar[i][j]);
}
}
}
void reverse_mat(int a)
{
for (int i=0; i<a/2; i++)
{
printf("\n");
for (int j=0; j<a; j++)
{
int temp = ar[i][j];
ar[i][j]=ar[a-i-1][j];
ar[a-i-1][j]=temp;
}
}
}
void print_reversed(int a)
{
printf("\nMatricea in forma inversa: ");
for (int i=0; i<a; i++)
{
printf("\n");
for (int j=0; j<a; j++)
{
printf("%d\t",ar[i][j]);
}
}
}
int main()
{
int (*funcptr)(int);
int (*rev)(int);
int (*ptr_rev)(int);
funcptr = &create_mat;
rev = &reverse_mat;
ptr_rev = &print_reversed;
int a;
printf("Introduceti nr de linii si coloane: ");
scanf("%d",&a);
funcptr(a);
rev(a);
ptr_rev(a);
return 0;
}
解决方法
调用签名是 NSImage(systemSymbolName:accessibilityDescription:)
(https://developer.apple.com/documentation/appkit/nsimage/3622472-init),而不是 NSImage(named:)
,它试图从您的应用程序包中获取图像,而不是 SF 符号。
示例:
NSImage(systemSymbolName: "pencil",accessibilityDescription: nil)
请注意,这仅适用于 macOS 11.0 (Big Sur) 及更高版本。在此之前,SF Symbols 不适用于 Mac 应用程序,除非通过 Catalyst。