squirrel icon indicating copy to clipboard operation
squirrel copied to clipboard

macOS Sonoma 系统中输入法图标显示问题

Open scomper opened this issue 1 year ago • 22 comments

CleanShot 2023-06-07 at 10 43 17@2x Squirrel 的图标又要被动更新了,新的 macOS Sonoma 里和系统的显示方式不太一样。 CleanShot 2023-06-07 at 10 53 51@2x

scomper avatar Jun 07 '23 02:06 scomper

改!

LEOYoon-Tsaw avatar Jun 07 '23 11:06 LEOYoon-Tsaw

不然大家湊錢湊夠一份 Apple Developer Technical Service 的費用,然後開一份 DTS 工單來問一下 XHacker? Apple 到現在都沒有一份 documentation 來指導第三方輸入法怎樣設計選單圖示、該裁減成怎樣的標準。

ShikiSuen avatar Jun 07 '23 15:06 ShikiSuen

真的醜死了。 image

ShikiSuen avatar Jun 07 '23 15:06 ShikiSuen

不然大家湊錢湊夠一份 Apple Developer Technical Service 的費用,然後開一份 DTS 工單來問一下 XHacker? Apple 到現在都沒有一份 documentation 來指導第三方輸入法怎樣設計選單圖示、該裁減成怎樣的標準。

如果发起众筹,我愿意参与。同时也有一个自从开始用Mac就困扰我的问题。当在有选字框时按Return键,输入法收到并响应操作(大部分人应该设置的是上屏)后,下方的应用也能收到按键信号,这就导致应用拿我还没输完的内容被执行搜索,发送等操作。

nb5p avatar Jun 08 '23 08:06 nb5p

@nb5p 因為 IMK 的特性,只要是 inline composition buffer (inline preedit area) 身為 NSAttribuitedString 的 length 是 0,輸入法就無法完全攔截所有的按鍵訊號(哪怕返回 true 也會被當作返回 false)。

威注音輸入法的私隱模式、以及業火五筆輸入法對此的處理方式是:哪怕不需要內文組字區了,內文組字區也固定顯示一個 ASCII 空格。

ShikiSuen avatar Jun 08 '23 11:06 ShikiSuen

不然大家湊錢湊夠一份 Apple Developer Technical Service 的費用,然後開一份 DTS 工單來問一下 XHacker? Apple 到現在都沒有一份 documentation 來指導第三方輸入法怎樣設計選單圖示、該裁減成怎樣的標準。

如果发起众筹,我愿意参与。同时也有一个自从开始用Mac就困扰我的问题。当在有选字框时按Return键,输入法收到并响应操作(大部分人应该设置的是上屏)后,下方的应用也能收到按键信号,这就导致应用拿我还没输完的内容被执行搜索,发送等操作。

很多網站是響應return的key up,而輸入法只handle按鍵的key down。這是網站設計的問題,系統輸入法一樣中招。

groverlynn avatar Jul 03 '23 10:07 groverlynn

@groverlynn 感谢指点迷津。其实输入法可以 handle keyUp。

ShikiSuen avatar Jul 03 '23 11:07 ShikiSuen

@groverlynn 正好有個事情想請教一下。 請問您是否知道 Facebook 的貼文編輯視窗當中對 Tab 鍵的攔截方式是怎樣實現的嗎?(我不太懂網頁前端。) 我剛剛給輸入法改了攔截處理,嘗試在 keyUp 的時候讓輸入法攔截 Tab 鍵(return true),但沒有效果。 image

ShikiSuen avatar Jul 03 '23 13:07 ShikiSuen

@groverlynn 正好有個事情想請教一下。 請問您是否知道 Facebook 的貼文編輯視窗當中對 Tab 鍵的攔截方式是怎樣實現的嗎?(我不太懂網頁前端。) 我剛剛給輸入法改了攔截處理,嘗試在 keyUp 的時候讓輸入法攔截 Tab 鍵(return true),但沒有效果。 image

這個應該是監聽的tab的keydown,而且用的是html的全局屬性tabindex。除非你的輸入法內也有tab,否則html的tabindex優先級更高

groverlynn avatar Jul 03 '23 14:07 groverlynn

@groverlynn 我就是在輸入法內用 Tab 作為「輪替當前候選字詞」的熱鍵的,結果在 Safari 與 Chrome 系瀏覽器內每次都被攔截。FireFox 無此故障。

ShikiSuen avatar Jul 03 '23 15:07 ShikiSuen

@groverlynn 我就是在輸入法內用 Tab 作為「輪替當前候選字詞」的熱鍵的,結果在 Safari 與 Chrome 系瀏覽器內每次都被攔截。FireFox 無此故障。

似乎和這個bug有關https://bugzilla.mozilla.org/show_bug.cgi?id=1739489

groverlynn avatar Jul 03 '23 19:07 groverlynn

@groverlynn 也就是说如果 Firefox 修了那个 bug 的话,威注音在 Firefox 当中理论上也会出现和在 Safari / Chrome / Edge 当中同样的 Tab 键故障?

ShikiSuen avatar Jul 04 '23 03:07 ShikiSuen

@groverlynn 也就是说如果 Firefox 修了那个 bug 的话,威注音在 Firefox 当中理论上也会出现和在 Safari / Chrome / Edge 当中同样的 Tab 键故障?

應該是這樣。這是FB的問題,輸入框的bug千奇百怪,有一陣遊標不錯位反而不正常…… 其他網站的輸入框,乃至FB自己的搜索輸入框都沒有這樣的問題。

groverlynn avatar Jul 05 '23 00:07 groverlynn

我看,默认输入法的icon应该不在 输入法.app 里面,而是 /System/Library/TextInput 里面,比如中文输入法 /System/Library/TextInput/TextInput_zh.bundle/Versions/A/Resources/Keyboard-zh_Hans-Pinyin.plist

<dict>
	<key>UI-abc</key>
	<string>拼音</string>
	<key>UI-ABC</key>
	<string>拼音</string>
	<key>UI-IconArtworkShort</key>
	<string>InputMode.Pinyin</string>
	<key>UI-IconArtworkFull</key>
	<string>InputMode.Pinyin.zh-Hans</string>
</dict>

UI-IconArtworkShort 对应短图标, 截屏2023-10-01 23 01 59 UI-IconArtworkFull 对应长图标, image

还有一种是 /System/Library/TextInput/TextInput_ja.bundle/Versions/A/Resources/Keyboard-ja.plist

	<key>UI-IconLabelScript</key>
	<string>あ</string>

直接用文字作为图标

输入法应该是要和keyboard绑定,再和TextInput绑定。因为Squirrel里面键盘布局一直是空的,也许这里要先通。

更多的就没看出来了。

xiehuc avatar Oct 01 '23 15:10 xiehuc

@xiehuc 你图标在哪里找的?

ShikiSuen avatar Oct 02 '23 07:10 ShikiSuen

@xiehuc 你图标在哪里找的?

没找到,从菜单栏截的

xiehuc avatar Oct 02 '23 07:10 xiehuc

UI-IconArtworkShort 对应短图标, 截屏2023-10-01 23 01 59 UI-IconArtworkFull 对应长图标, image

这里对应的是菜单栏图标,而不是切换指示器的图标?另外发现苹果自带 ABC 和拼音的菜单栏图标样式也不一致 image

yzlnew avatar Oct 07 '23 08:10 yzlnew

我看,默认输入法的icon应该不在 输入法.app 里面,而是 /System/Library/TextInput 里面,比如中文输入法 /System/Library/TextInput/TextInput_zh.bundle/Versions/A/Resources/Keyboard-zh_Hans-Pinyin.plist

<dict>
	<key>UI-abc</key>
	<string>拼音</string>
	<key>UI-ABC</key>
	<string>拼音</string>
	<key>UI-IconArtworkShort</key>
	<string>InputMode.Pinyin</string>
	<key>UI-IconArtworkFull</key>
	<string>InputMode.Pinyin.zh-Hans</string>
</dict>

UI-IconArtworkShort 对应短图标, 截屏2023-10-01 23 01 59 UI-IconArtworkFull 对应长图标, image

还有一种是 /System/Library/TextInput/TextInput_ja.bundle/Versions/A/Resources/Keyboard-ja.plist

	<key>UI-IconLabelScript</key>
	<string>あ</string>

直接用文字作为图标

输入法应该是要和keyboard绑定,再和TextInput绑定。因为Squirrel里面键盘布局一直是空的,也许这里要先通。

更多的就没看出来了。

非也。TextInput不是MacOS的輸入法,而是iOS和iPadOS的。你標出來的是iO的三層鍵盤(主鍵盤ABC、數字標點鍵盤123、符號鍵盤#+=)的標籤。 MacOS的東亞和南亞輸入法圖標在這裏:/System/Library/PrivateFrameworks/KeyboardLayouts.framework/Versions/A/Resources/Assets.car 其他語言的應該是直接用SFSymbol所以不需要 但是Apple到底怎麼設定的就不知道了。就算用同樣這些原始素材,黑白也依舊是反的

groverlynn avatar Oct 20 '23 14:10 groverlynn

我发现过了这么久好像习惯了,现在系统没有经常弹输入法图标了。

xiehuc avatar Nov 30 '23 10:11 xiehuc

image 用 Unicode和Rime就行,不用ABC。Unicode输入法能输入Meta键,不会映射到特殊字符上去。

xiehuc avatar Nov 30 '23 11:11 xiehuc

說不定去掉邊框,僅留㞢就行了,有空我試試

LEOYoon-Tsaw avatar Nov 30 '23 17:11 LEOYoon-Tsaw

說不定去掉邊框,僅留㞢就行了,有空我試試

沒用的,菜單欄又不對了

LEOYoon-Tsaw avatar May 08 '24 17:05 LEOYoon-Tsaw